Пример #1
0
        public void ProcessMessages()
        {
            NetIncomingMessage message;

            while ((message = _netServer.ReadMessage()) != null)
            {
                switch (message.MessageType)
                {
                case NetIncomingMessageType.Data:
                    var data = message.ReadString();
                    DataReceived?.Invoke(message.SenderConnection, data);
                    break;

                case NetIncomingMessageType.StatusChanged:

                    switch (message.SenderConnection.Status)
                    {
                    case NetConnectionStatus.Connected:
                        ClientConnected?.Invoke(message.SenderConnection.RemoteHailMessage.ReadString());
                        break;

                    case NetConnectionStatus.Disconnected:
                        ClientDisconected?.Invoke(message.SenderConnection.RemoteHailMessage.ReadString());
                        break;
                    }
                    break;
                }
                _netServer.Recycle(message);
            }
        }
Пример #2
0
    public override void OnClientDisconnect(NetworkConnection conn)
    {
        //Base handling
        base.OnClientDisconnect(conn);

        //Just fire the event
        if (ClientDisconected != null)
        {
            ClientDisconected.Invoke(conn);
        }
    }
Пример #3
0
 public void Disconnect(string message = "bye")
 {
     _client.Disconnect("bye");
     ClientDisconected?.Invoke();
     mainThread.Abort();
 }