示例#1
0
        private static void SendUpdatedGamesList(List <Message> result)
        {
            var clientConnectedMessage = new ClientConnectedMessage();

            clientConnectedMessage.Games = GameManager.RecieveAllGames();
            result.Add(clientConnectedMessage);
        }
    public void MergeFrom(ServerMessage other)
    {
        if (other == null)
        {
            return;
        }
        switch (other.MessageCase)
        {
        case MessageOneofCase.ArduinoConnectedMessage:
            if (ArduinoConnectedMessage == null)
            {
                ArduinoConnectedMessage = new global::ArduinoConnected();
            }
            ArduinoConnectedMessage.MergeFrom(other.ArduinoConnectedMessage);
            break;

        case MessageOneofCase.ClientConnectedMessage:
            if (ClientConnectedMessage == null)
            {
                ClientConnectedMessage = new global::ClientConnected();
            }
            ClientConnectedMessage.MergeFrom(other.ClientConnectedMessage);
            break;
        }

        _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }
示例#3
0
        public async Task <INetworkClient> AcceptNetworkClientAsync(string serverName)
        {
            var tcpClient = await Listener.AcceptTcpClientAsync();

            var client = new NetworkClient("Temp", tcpClient);

            var stream = client.GetCommunicationStream();

            while (!stream.DataAvailable)
            {
                await Task.Delay(10);
            }

            var message = MessageFactory.ReadMessage(stream);

            if (!(message is ClientInfoMessage clientInfoMessage))
            {
                //Handle bad connection attempt
                return(null);
            }

            var returnMessage = new ClientConnectedMessage(serverName);
            var messageBytes  = returnMessage.GetMessageBytes();

            stream.Write(messageBytes, 0, messageBytes.Length);

            client.ClientName = clientInfoMessage.ClientName;
            return(client);
            //return new NetworkClient(clientInfoMessage.ClientName, tcpClient);
        }
示例#4
0
 private void BroadCastConnectionMessage(int id, String playerName)
 {
     foreach (int playerId in players.Keys)
     {
         ClientConnectedMessage cm = new ClientConnectedMessage(id, playerName, time, true);
         rq[playerId].AddQueueWithTimeout(cm, time);
     }
 }
示例#5
0
 private void UpdateGamesList(ClientConnectedMessage message)
 {
     Games = new List <GameModel>();
     foreach (var game in message.Games)
     {
         Games.Add(new GameModel(game));
     }
     OnPropertyChanged(nameof(Games));
 }
 public void OnClientConnectedMessage(NetworkConnection conn, ClientConnectedMessage message)
 {
     if (ServerUtils.CreatePlayer(
             conn,
             NetworkingLibrary.Instance.ClientConnectionPlayer.gameObject,
             out NetworkBehaviour client))
     {
         _connections.Add(conn.connectionId, (CommandClient)client);
     }
 }
    public override int GetHashCode()
    {
        int hash = 1;

        if (messageCase_ == MessageOneofCase.ArduinoConnectedMessage)
        {
            hash ^= ArduinoConnectedMessage.GetHashCode();
        }
        if (messageCase_ == MessageOneofCase.ClientConnectedMessage)
        {
            hash ^= ClientConnectedMessage.GetHashCode();
        }
        hash ^= (int)messageCase_;
        if (_unknownFields != null)
        {
            hash ^= _unknownFields.GetHashCode();
        }
        return(hash);
    }
示例#8
0
 private void handleConnectionConfirmation(ClientConnectedMessage ccm)
 {
     if (client.getPlayer().name.Equals(ccm.name))
     {
         client.setTime(ccm._TimeStamp);
         this.client.getPlayer().id = ccm.id;
     }
     else
     {
         if (!client.getOtherPlayers().ContainsKey(ccm.id))
         {
             GameObject go = GameObject.Instantiate(client.otherPlayersPrefab);
             go.tag = "serverplayer";
             ServerPlayer newPlayer = go.GetComponent <ServerPlayer>();
             newPlayer.id   = ccm.id;
             newPlayer.name = ccm.name;
             client.getOtherPlayers().Add(ccm.id, newPlayer);
         }
         // Else ignore
     }
     client.getOutgoingMessages().Add(new AckMessage(ccm._MessageId));
 }