Exemple #1
0
        protected override void OnConnect(Event e)
        {
            Peer peer = e.Peer;
            uint id   = peer.ID + 1;           // Increase by 1 so ID of 0 remains free for host

            if (peer.IsSet)
            {
                NetworkLogger.Log($"Client [{id}] connected", LogCategory.Connections);

                var client = new FlareClientShell(peer)
                {
                    Id = id
                };
                ClientManager?.AddClient(client);

                // Send the client its ID manually
                PayloadHandler.AddCallback <ClientAssigned>(PushClientConnected);
                SendMessage(new IdAssignment {
                    id = id
                }, 0, peers: client.Peer);
            }
            else
            {
                NetworkLogger.Log("Unset peer connected. How?", LogCategory.Connections, LogLevel.Error);
            }
        }
Exemple #2
0
        private void PushClientConnected(ClientAssigned p)
        {
            NetworkLogger.Log("Client connection finalized", LogCategory.Connections);
            PayloadHandler.RemoveCallback <ClientAssigned>(PushClientConnected);

            if (ClientManager.TryGetClient(p.id, out var client))
            {
                PayloadHandler.PushPayload(new ClientConnected {
                    Client = client
                });
            }
        }
Exemple #3
0
        protected override void OnDisconnect(Event e)
        {
            Peer peer = e.Peer;
            uint id   = peer.ID + 1;

            if (peer.IsSet)
            {
                NetworkLogger.Log($"Client [{id}] disconnected", LogCategory.Connections);
                ClientManager?.RemoveClient(id);
                PayloadHandler.PushPayload(new ClientDisconnected {
                    ClientId = id
                });
            }
            else
            {
                NetworkLogger.Log("Unset peer disconnected!", LogCategory.Connections, LogLevel.Error);
            }
        }
Exemple #4
0
        protected override void OnMessageReceived(Event e)
        {
            NetworkLogger.Log($"Packet from client [{e.Peer.ID + 1}] on channel [{e.ChannelID}] with length [{e.Packet.Length}]", LogCategory.Packets);

            PayloadHandler.ProcessPacket(e.Packet);
        }