public void Deregister(NetPeer peer) { if (peer == null) { return; } peer.Stop(); peer.OnClose -= OnClose; peer.OnReceive -= OnReceive; peer.OnException -= OnException; if (peer.netType == NetworkType.KCP) { kcpPeers.TryRemove(peer.ConnId, out var _); } if (peer.netType == NetworkType.TCP) { tcpPeers.TryRemove(peer.ConnId, out var _); } if (channelPeers.ContainsKey(peer.ConnId)) { channelPeers.TryRemove(peer.ConnId, out var _); } Log.Info(string.Format("DeregisterPeer: {0} {1} {2}", peer.ConnId, peer.RemoteAddress, peer.netType)); }
public bool Deregister(NetPeer peer) { if (peer == null) { return(false); } peer.Stop(); peer.OnClose -= OnClose; peer.OnReceive -= OnReceive; peer.OnException -= OnException; if (peer.netType == NetworkType.KCP) { kcpPeers.TryRemove(peer.ConnId, out var _); foreach (var k in kcpPeers.Where(m => m.Value.ConnId == peer.ConnId).Select(m => m.Key).ToList()) { kcpPeers.TryRemove(k, out var _); } } if (peer.netType == NetworkType.TCP) { tcpPeers.TryRemove(peer.ConnId, out var _); foreach (var k in tcpPeers.Where(m => m.Value.ConnId == peer.ConnId).Select(m => m.Key).ToList()) { tcpPeers.TryRemove(k, out var _); } } if (channelPeers.ContainsKey(peer.ConnId)) { channelPeers.TryRemove(peer.ConnId, out var _); foreach (var k in channelPeers.Where(m => m.Value.ConnId == peer.ConnId).Select(m => m.Key).ToList()) { channelPeers.TryRemove(k, out var _); } } Log.Info(string.Format("DeregisterPeer: {0} {1} {2}", peer.ConnId, peer.RemoteAddress, peer.netType)); return(true); }