/// <summary>
 /// Handles the read.
 /// </summary>
 /// <param name="slice">The slice.</param>
 /// <param name="bytesRead">The bytes read.</param>
 protected override void HandleRead(IBufferSlice slice, int bytesRead)
 {
     if (_messageBuilder.Append(new SliceStream(slice, bytesRead)))
     {
         object message;
         while (_messageBuilder.TryDequeue(out message))
         {
             TriggerClientReceive(message);
         }
     }
 }
Exemplo n.º 2
0
        /// <summary>
        /// We've received something from the other end
        /// </summary>
        /// <param name="buffer">Buffer containing the received bytes</param>
        /// <param name="bytesRead">Amount of bytes that we received</param>
        /// <remarks>You have to handle all bytes, anything left will be discarded.</remarks>
        protected override void OnReceived(IBufferSlice buffer, int bytesRead)
        {
            var gotMessage = _messageBuilder.Append(new SliceStream(buffer, bytesRead));

            if (gotMessage)
            {
                object message;
                while (_messageBuilder.TryDequeue(out message))
                {
                    Received(this, new ReceivedMessageEventArgs(message));
                }
            }
        }