Exemple #1
0
 protected virtual void HandleKeepAliveMessage(PeerId id, KeepAliveMessage message)
 {
     id.LastMessageReceived = DateTime.Now;
 }
        public void ReceiveTwoKeepAlives()
        {
            var message = new KeepAliveMessage ();
            var buffer = message.Encode ();
            var handle = new AutoResetEvent (false);

            NetworkIO.EnqueueSend (Outgoing, buffer, 0, buffer.Length, null, null, null, delegate { }, null);
            NetworkIO.EnqueueSend (Outgoing, buffer, 0, buffer.Length, null, null, null, delegate { }, null);

            AsyncMessageReceivedCallback callback = (s, m, state) => {
                if (s && m is KeepAliveMessage)
                    handle.Set ();
            };

            PeerIO.EnqueueReceiveMessage (Incoming, new PlainTextEncryption (), null, null, null, callback, null);
            Assert.IsTrue (handle.WaitOne (TimeSpan.FromSeconds (2)), "#Should receive first message");

            PeerIO.EnqueueReceiveMessage (Incoming, new PlainTextEncryption (), null, null, null, callback, null);
            Assert.IsTrue (handle.WaitOne (TimeSpan.FromSeconds (2)), "#Should receive second message");
        }