private void RemoveConnection(NetPeer netPeer, DisconnectReason reason) { if (reason == DisconnectReason.Reconnect || reason == DisconnectReason.PeerToPeerConnection) { this._pendingReconnections.Add(netPeer.EndPoint); } for (int i = 0; i < this._pendingConnections.Count; i++) { if (this._pendingConnections[i].netPeer == netPeer) { this._pendingConnections.RemoveAt(i); this.TryDisconnect(reason); return; } } for (int j = 0; j < this._connections.Count; j++) { if (this._connections[j].netPeer == netPeer) { LiteNetLibConnectionManager.NetPeerConnection obj = this._connections[j]; this._connections.RemoveAt(j); Action <IConnection> action = this.onConnectionDisconnectedEvent; if (action != null) { action(obj); } this.TryDisconnect(reason); return; } } }
void INetEventListener.OnNetworkLatencyUpdate(NetPeer peer, int latencyMs) { LiteNetLibConnectionManager.NetPeerConnection connection = this.GetConnection(peer); if (connection != null) { Action <IConnection, float> action = this.onLatencyUpdatedEvent; if (action == null) { return; } action(connection, 0.001f * (float)latencyMs); } }
void INetEventListener.OnPeerConnected(NetPeer peer) { int i = 0; while (i < this._pendingConnections.Count) { if (this._pendingConnections[i].netPeer == peer) { LiteNetLibConnectionManager.NetPeerConnection netPeerConnection = this._pendingConnections[i]; this._pendingConnections.RemoveAt(i); for (int j = 0; j < this._connections.Count; j++) { if (this._connections[j].userId == netPeerConnection.userId) { netPeerConnection.Disconnect(); return; } } this._connections.Add(netPeerConnection); if (this._connectionState == LiteNetLibConnectionManager.ConnectionState.Connecting) { this._connectionState = LiteNetLibConnectionManager.ConnectionState.Connected; Action action = this.onConnectedEvent; if (action != null) { action(); } } if (this.isRelay && netPeerConnection.isConnectionOwner) { this.AcceptAllPendingRequests(); } Action <IConnection> action2 = this.onConnectionConnectedEvent; if (action2 == null) { return; } action2(netPeerConnection); return; } else { i++; } } peer.Disconnect(); }
void INetEventListener.OnNetworkReceive(NetPeer peer, NetPacketReader reader, DeliveryMethod deliveryMethod) { if (this._connectionState == LiteNetLibConnectionManager.ConnectionState.Unconnected) { reader.Recycle(); return; } LiteNetLibConnectionManager.NetPeerConnection connection = this.GetConnection(peer); if (connection != null) { Action <IConnection, NetDataReader, DeliveryMethod> action = this.onReceivedDataEvent; if (action != null) { action(connection, reader, deliveryMethod); } } reader.Recycle(); }