Exemplo n.º 1
0
        private void handleIncomingPacket(UserThread sender, Packet packet)
        {
            int newOffset;

            if (packet.PacketType == NetConstants.PacketTypes.UserRegister)
            {
                var registerString = PacketHelper.GetStringFromBytes(packet.DataBytes, 0, out newOffset);
                if (registerString == NetConstants.UserRegisterString && !sender.IsRegistered)
                {
                    var name = PacketHelper.GetStringFromBytes(packet.DataBytes, newOffset, out newOffset);
                    sender.Username     = name;
                    sender.IsRegistered = true;

                    var joinPacket = PacketHelper.CreateUserJoinedPacket(sender);
                    sendPacketToAllClientsExcept(joinPacket, sender.UserGuid, true);

                    var clientsPacket = PacketHelper.CreateUsersAlreadyHerePacket(AllRegisteredClients);
                    //Send info of all clients already in lobby to new client
                    sendPacketToClient(clientsPacket, sender);
                }
            }
            if (packet.PacketType == NetConstants.PacketTypes.UserLeft)
            {
                var leftPacket = PacketHelper.CreateUserLeftPacket(sender);
                sendPacketToAllClientsExcept(leftPacket, sender.UserGuid, true);
            }

            if (packet.PacketType == NetConstants.PacketTypes.MemoryData && sender.IsRegistered)
            {
                //Add the clients Guid in front of the data
                var newData   = PacketHelper.ConcatBytes(sender.UserGuid.ToByteArray(), packet.DataBytes);
                var newPacket = new Packet(NetConstants.PacketTypes.MemoryData, newData);
                sendPacketToAllClientsExcept(newPacket, sender.UserGuid, true);
            }

            if (packet.PacketType == NetConstants.PacketTypes.UserChat)
            {
                var text       = PacketHelper.GetStringFromBytes(packet.DataBytes, 0, out newOffset);
                var chatPacket = PacketHelper.CreateServerToUserChatMessage(sender, text);
                sendPacketToAllClients(chatPacket, true);
            }
        }
Exemplo n.º 2
0
 public byte[] GetBytes()
 {
     return(PacketHelper.ConcatBytes(UserGuid.ToByteArray(), PacketHelper.GetStringBytes(Username)));
 }