public ServersideClient(IConnectionStub <TMessage, TKey> stub, IThreadManager threadManager, IKeyedSubscriptionManager <TKey, MessageReceivedHandler <TMessage, TKey> > messageHandler, Guid clientId) : base(messageHandler, threadManager) { this.stub = Guard.IsNull(() => stub); stub.Write(new TMessage { ClientId = clientId }); this.clientId = clientId; StartReader(); }
public override int Send(TMessage keyedMessage) { if (null == stub) { throw new InvalidOperationException("Not connected"); } int size; lock (syncRoot) { if (!stub.CanWrite) { if (!stub.IsOpen) { throw new InvalidOperationException("Not connected"); } throw new InvalidOperationException("The connection stub does not support writing"); } size = stub.Write(keyedMessage); } return(size); }