/// <inheritdoc/> public IPeerManager Connect(IPEndPoint endPoint) { var peerManager = new LiteNetLibPeerManager(netServer.Connect(endPoint, ApplicationKey)); peers.Add(peerManager.PeerEndPoint, peerManager); return(peerManager); }
/// <inheritdoc/> public void OnPeerConnected(NetPeer peer) { if (!peers.TryGetValue(peer.EndPoint, out var peerManager)) { peerManager = new LiteNetLibPeerManager(peer); } PeerConnected?.Invoke(peerManager); }
/// <inheritdoc/> public IPeerManager Connect(IPEndPoint endPoint) { if (masterPeer != null) { throw new ArgumentException("Client can be connected only to a single peer."); } masterPeer = new LiteNetLibPeerManager(NetClient.Connect(endPoint, ApplicationKey)); return(masterPeer); }
/// <inheritdoc/> public void OnPeerDisconnected(NetPeer peer, DisconnectInfo disconnectInfo) { var disconnectedPeer = masterPeer; if (masterPeer.Peer == peer) { masterPeer = null; } PeerDisconnected?.Invoke(disconnectedPeer); }
/// <inheritdoc/> public void OnNetworkReceive(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod) { if (MessageReceived == null) { return; } var message = new Message(new BytesStack(reader.GetRemainingBytes(), false)); message.Type = LiteNetLibPeerManager.GetDeliveryMethod(deliveryMethod); MessageReceived?.Invoke(masterPeer, message); }
/// <inheritdoc/> public void OnPeerConnected(NetPeer peer) { if (masterPeer == null) { masterPeer = new LiteNetLibPeerManager(peer); } else if (!Equals(masterPeer.PeerEndPoint, peer.EndPoint)) { throw new ArgumentException("Client can be connected only to a single peer."); } PeerConnected?.Invoke(masterPeer); }