Exemplo n.º 1
0
 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;
         }
     }
 }
Exemplo n.º 2
0
 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);
     }
 }
Exemplo n.º 3
0
    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();
    }
Exemplo n.º 4
0
 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();
 }