Esempio n. 1
0
 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();
 }
Esempio n. 2
0
        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);
        }