The connector can have multiple clp peers as well as multiple virtual peers. But the clp peers can only be added if they connect to the connector's WebSocket server. It cannot act as a WebSocket slave.
If the connector can act as a WebSocket slave, then the client class can be based on it (just specify which WebSocket urls to connect to, and don't specify a port to listen on), and some code that is now duplicated in there (like Client#receiveOnLedger) or missing from the server (the Peer's fulfiller, based on Client#fulfillments) can be moved to connector.
The connector can have multiple clp peers as well as multiple virtual peers. But the clp peers can only be added if they connect to the connector's WebSocket server. It cannot act as a WebSocket slave.
If the connector can act as a WebSocket slave, then the client class can be based on it (just specify which WebSocket urls to connect to, and don't specify a port to listen on), and some code that is now duplicated in there (like
Client#receiveOnLedger
) or missing from the server (the Peer's fulfiller, based onClient#fulfillments
) can be moved to connector.