Ejemplo n.º 1
0
 public bool SendDisconnect(int connectionId)
 {
     Log.Info("SendDisconnect:{0}", connectionId);
     if (m_PeerManager.TryGetValue(connectionId, out var peer))
     {
         var seq  = peer.IncrementSendSequence();
         var msg  = new Disconnect(GetSendId(peer.ConnectionId), seq);
         var size = msg.Pack(m_SendBuffer, peer.Encryptor);
         m_Socket.Send(m_SendBuffer, 0, size, peer.EndPoint);
         m_PeerManager.Remove(connectionId);
         return(true);
     }
     return(false);
 }
Ejemplo n.º 2
0
        public void BroadcastDisconnect()
        {
            Log.Info("BroadcastDisconnect");
            var peers = m_PeerManager.GetPeers().ToArray();

            foreach (var peer in peers)
            {
                var seq  = peer.IncrementSendSequence();
                var msg  = new Disconnect(GetSendId(peer.ConnectionId), seq);
                var size = msg.Pack(m_SendBuffer, peer.Encryptor);
                m_Socket.Send(m_SendBuffer, 0, size, peer.EndPoint);
            }
            foreach (var peer in peers)
            {
                m_PeerManager.Remove(peer.ConnectionId);
            }
        }