void OnData(DataStreamReader stream, int i, NetworkConnection client)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp); //Where to store bytes data

        stream.ReadBytes(bytes);                                                          //Get bytes data from stream
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());                 //convert bytes data to string(JSON)
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);              //convert JSON to c# object

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Handshake message received!");
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("Got " + puMsg.player.id + " player Info");
            UpdateClientInfo(puMsg);
            //Debug.Log("Player update message received!");
            //Debug.Log("Got data from client, Player Pos: " + puMsg.player.pos);
            //TestSendBack(client, puMsg);
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server update message received!");
            break;

        default:
            Debug.Log("SERVER ERROR: Unrecognized message received!");
            break;
        }
    }
    void OnData(DataStreamReader stream, int i)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Server: Hello, player " + hsMsg.player.id.ToString());
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);

            m_listOfPlayers[i].body.transform.position = puMsg.player.body.transform.position;
            ServerUpdateMsg serUpMsg = new ServerUpdateMsg();
            serUpMsg.players = m_listOfPlayers;
            SendToClient(JsonUtility.ToJson(serUpMsg), m_Connections[i]);
            Debug.Log("Player update message received!");
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server update message received!");
            break;

        default:
            Debug.Log("SERVER ERROR: Unrecognized message received!");
            break;
        }
    }
    private void SendIdToClient(int ci)
    {
        HandshakeMsg msg = new HandshakeMsg();

        msg.player.id = playersIds[ci].ToString();
        SendToClient(JsonUtility.ToJson(msg), m_Connections[ci]);
    }
Exemple #4
0
    void OnConnect(NetworkConnection c)
    {
        Debug.Log("Accepted a connection");

        // Example to send a handshake message:
        HandshakeMsg hsm = new HandshakeMsg();

        hsm.player.id = c.InternalId.ToString();


        // send all connection to client
        foreach (NetworkConnection con in m_Connections)
        {
            SendToClient(JsonUtility.ToJson(hsm), con);
        }

        ClientListMsg Clist = new ClientListMsg(ServerPlayersList);

        SendToClient(JsonUtility.ToJson(Clist), c);

        // send new player info
        hsm.cmd = Commands.PLAYER_JOIN;
        SendToClient(JsonUtility.ToJson(hsm), c);

        // add to server player list and connection list
        ServerPlayersList.Add(hsm.player);
        m_Connections.Add(c);


        print("User ID: " + hsm.player.id + " Connected!");
    }
Exemple #5
0
    void OnConnect(NetworkConnection c)
    {
        m_Connections.Add(c);
        Debug.Log("Accepted a connection");

        HandshakeMsg message = new HandshakeMsg();

        message.player.id = c.InternalId.ToString();
        SendToClient(JsonUtility.ToJson(message), c);

        NetworkObjects.NetworkPlayer nPlayer = new NetworkObjects.NetworkPlayer();

        nPlayer.id        = c.InternalId.ToString();
        nPlayer.cubeColor = UnityEngine.Random.ColorHSV(0f, 1f, 1f, 1f, 0f, 1f);
        nPlayer.cubPos    = new Vector3(UnityEngine.Random.Range(-5, 5), UnityEngine.Random.Range(-5, 5), UnityEngine.Random.Range(0, 0));

        for (int i = 0; i < m_Connections.Length; i++)
        {
            if (m_Connections[i] != c)
            {
                PlayerUpdateMsg othermessage = new PlayerUpdateMsg();
                othermessage.cmd    = Commands.PLAYER_JOINED;
                othermessage.player = nPlayer;
                SendToClient(JsonUtility.ToJson(othermessage), m_Connections[i]);
            }
        }
        PlayerList.Add(nPlayer);
        foreach (var player in PlayerList)
        {
            PlayerUpdateMsg otherothermessage = new PlayerUpdateMsg();
            otherothermessage.cmd    = Commands.PLAYER_JOINED;
            otherothermessage.player = player;
            SendToClient(JsonUtility.ToJson(otherothermessage), c);
        }
    }
    void OnData(DataStreamReader stream, int i)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp); // Convert the stream into bytes

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());    // Convert bytes into string
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg); // Convert the string into a json object

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Handshake message received!");
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            clients[puMsg.player.id].cubPos = puMsg.player.cubPos;
            //clients[puMsg.player.id].cubeColor = puMsg.player.cubeColor;
            Debug.Log("Player update message received!");
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server update message received!");
            break;

        default:
            Debug.Log("SERVER ERROR: Unrecognized message received!");
            break;
        }
    }
    void OnData(DataStreamReader stream)
    {
        //these guys are converting unreadable data to readable and the final version will be called recMsg
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        //
        switch (header.cmd)
        {
        case Commands.ID_UPDATE:

            IDUpdateMsg idMsg = JsonUtility.FromJson <IDUpdateMsg>(recMsg);
            myPlayer.id = idMsg.id;
            Debug.Log("Client: Server returned me my new id: " + myPlayer.id.ToString());
            break;

        case Commands.HANDSHAKE:
            HandshakeMsg m = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("(Server) Hello, player " + myPlayer.id.ToString());
            break;

        default:
            Debug.Log("Unrecognized message received!");
            break;
        }
    }
    void OnConnect(NetworkConnection c)
    {
        m_Connections.Add(c);

        //d_Connections.Add(c.InternalId.ToString(), c);
        Debug.Log(c.ToString());
        Debug.Log(c.InternalId.ToString());
        Debug.Log("Accepted a connection");
        Debug.Log("Added player:" + c.InternalId.ToString());
        // Example to send a handshake message:
        HandshakeMsg m = new HandshakeMsg();

        //m.InternalServerID = c.InternalId.ToString();
        //add the new player to our list of connected players
        //connectedPlayers.Add(m.player);
        SendToClient(JsonUtility.ToJson(m), c);

        ////send the new player all the other players and the other players the new player
        //foreach (NetworkConnection connection in m_Connections)
        //{
        //    if (connection.IsCreated)
        //    {
        //        Debug.Log("Sending connected players to player:" + connection.InternalId.ToString());
        //        NewPlayerUpdateMsg n = new NewPlayerUpdateMsg();
        //        n.players = new List<NetworkObjects.NetworkPlayer>(connectedPlayers);
        //        SendToClient(JsonUtility.ToJson(n), connection);
        //    }
        //}
    }
Exemple #9
0
    void OnData(DataStreamReader stream, int i)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Handshake message received!");
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("Player update message received!");
            UpdatePlayerInfo(puMsg.player);
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server update message received!");
            break;

        default:
            Debug.Log("SERVER ERROR: Unrecognized message received!");
            break;
        }
    }
    void OnConnect(NetworkConnection c) //done
    {
        Debug.Log("Accepted a connection");
        // Send a handshake message to Set ID
        HandshakeMsg m = new HandshakeMsg();

        m.player.id = c.InternalId.ToString();
        Assert.IsTrue(c.IsCreated);
        SendToClient(JsonUtility.ToJson(m), c);

        // Send List of Players to new Client
        SpawnedPlayersList playersInServer = new SpawnedPlayersList();

        foreach (var client in clientLookUpTable)
        {
            playersInServer.players.Add(client.Value);
        }
        Assert.IsTrue(c.IsCreated);
        SendToClient(JsonUtility.ToJson(playersInServer), c);

        // Send new Client to All existing Players
        NewPlayerMsg newPlayer = new NewPlayerMsg();

        newPlayer.player.id = c.InternalId.ToString();
        for (int i = 0; i < m_Connections.Length; i++)
        {
            Assert.IsTrue(m_Connections[i].IsCreated);
            SendToClient(JsonUtility.ToJson(newPlayer), m_Connections[i]);
        }

        m_Connections.Add(c);
        clientLookUpTable[c.InternalId.ToString()]           = new NetworkObjects.NetworkPlayer();
        clientLookUpTable[c.InternalId.ToString()].heartBeat = Time.time;
    }
Exemple #11
0
    void OnData(DataStreamReader stream)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);                                             //Get bytes
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());    //convert bytes to JSON string
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg); //convert JSON to c# class

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Handshake message received!");
            break;

        case Commands.PLAYER_INTERNALID:
            PlayerUpdateMsg internalId = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("Got internalId from server");
            playerInfo.player.id      = internalId.player.id;
            playerInternalIdText.text = playerInfo.player.id;
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            //Debug.Log("Player update message received!");
            Debug.Log("Got data from server, player Pos: " + puMsg.player.pos);
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server update message received!");
            UpdateClientsInfo(suMsg);
            break;

        //To spawn existed players
        case Commands.SPAWN_EXISTED_PLAYERS:
            ServerUpdateMsg existedPlayerInfo = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("existed player info received!");
            SpawnExistedPlayer(existedPlayerInfo);
            break;

        //Spawn new player
        case Commands.SPAWN_NEW_PLAYER:
            PlayerUpdateMsg newPlayerInfo = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("new client info received!");
            SpawnNewPlayer(newPlayerInfo);
            break;

        //handle disconnected player
        case Commands.DISCONNECTED_PLAYER:
            DisconnectedPlayersMsg dpm = JsonUtility.FromJson <DisconnectedPlayersMsg>(recMsg);
            Debug.Log("Disconnected player info recieved!");
            DeleteDisconnectPlayer(dpm);
            break;

        default:
            Debug.Log("Unrecognized message received!");
            break;
        }
    }
    void SendHandShake()
    {
        HandshakeMsg m = new HandshakeMsg();

        m.player.id = m_Connection.InternalId.ToString();
        SendToServer(JsonUtility.ToJson(m));
    }
Exemple #13
0
    void OnConnect(NetworkConnection c)
    {
        Debug.Log("Accepted a connection");
        HandshakeMsg m = new HandshakeMsg();

        m.player.id        = c.InternalId.ToString();
        m.player.cubeColor = new Color(Random.Range(0, 1f), Random.Range(0, 1f), Random.Range(0, 1f));
        SendToClient(JsonUtility.ToJson(m), c);

        ListUpdateMsg lm = new ListUpdateMsg();

        NetworkObjects.NetworkPlayer newPlayer = m.player;
        newPlayer.lastHB = 0f;
        playerList.Add(newPlayer); //
        lm.players = playerList;
        for (int i = 0; i < m_Connections.Length; ++i)
        {
            PlayerAddMsg am = new PlayerAddMsg();
            am.player = m.player;
            SendToClient(JsonUtility.ToJson(am), m_Connections[i]);
        }
        SendToClient(JsonUtility.ToJson(lm), c);
        m_Connections.Add(c);
        Debug.Log("Connect Init Finished");
    }
    void OnData(DataStreamReader stream)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("[Client] Handshake message received! " + hsMsg.player.id);
            GameplayManager.Instance.SpawnPlayer(hsMsg.player, true);
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("[Client] Player update message received!");
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("[Client] Server update message received!" + suMsg.players.ToArrayString());
            GameplayManager.Instance.UpdatePlayers(suMsg.players);
            break;

        default:
            Debug.Log("[Client] Unrecognized message received!");
            break;
        }
    }
    void OnData(DataStreamReader stream, int i)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string         recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkMessage header = JsonUtility.FromJson <NetworkMessage>(recMsg);

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            AddPlayer(hsMsg);
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            UpdatePlayer(puMsg);
            break;

        case Commands.DISCONNECT:
            DisconnectMsg dcMsg = JsonUtility.FromJson <DisconnectMsg>(recMsg);
            RemovePlayer(dcMsg);
            break;

        default:
            Debug.Log("SERVER ERROR: Unrecognized message received!");
            break;
        }
    }
    void OnConnect(NetworkConnection c)
    {
        m_Connections.Add(c);
        Debug.Log("Accepted a connection");
        Debug.Log("Added player:" + c.InternalId.ToString());
        // Example to send a handshake message:
        HandshakeMsg m = new HandshakeMsg();

        m.player.id = c.InternalId.ToString();
        //give the player a random starting location
        m.player.cubPos = new Vector3(UnityEngine.Random.Range(-5, 5), UnityEngine.Random.Range(-5, 5), 0);
        //add the new player to our list of connected players
        connectedPlayers.Add(m.player);
        SendToClient(JsonUtility.ToJson(m), c);

        //send the new player all the other players and the other players the new player
        foreach (NetworkConnection connection in m_Connections)
        {
            if (connection.IsCreated)
            {
                Debug.Log("Sending connected players to player:" + connection.InternalId.ToString());
                NewPlayerUpdateMsg n = new NewPlayerUpdateMsg();
                n.players = new List <NetworkObjects.NetworkPlayer>(connectedPlayers);
                SendToClient(JsonUtility.ToJson(n), connection);
            }
        }
    }
Exemple #17
0
    void OnData(DataStreamReader stream, int i, NetworkConnection client)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Handshake message received!");
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("Player position " + puMsg.player.pos);
            UpdatePlayerInfo(puMsg);
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg ServerUpdateMessage = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server Update.");
            break;

        default:
            Debug.Log("ServerError (Default Log)");
            break;
        }
    }
Exemple #18
0
    private void OnData(DataStreamReader stream)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("[Notice] Handshake message received!");
            break;

        case Commands.PLAYER_UPDATE:     //shouldnt happen
            Debug.LogError("[Error] Player update message received! Client shouldn't receive messages from clients.");
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            //Debug.Log("[Routine] Server update message received!");
            UpdateRemotePlayers(suMsg.players);
            break;

        case Commands.PONG:
            if (bVerboseDebug)
            {
                //Debug.Log("[Routine] Pong message received!");
            }
            break;

        case Commands.SERVER_HANDSHAKE:
            ServerHandshakeMsg shMsg = JsonUtility.FromJson <ServerHandshakeMsg>(recMsg);
            Debug.Log("[Notice] Handshake from server received!");

            m_clientIDDict.Add(shMsg.clientID, localClientCharacterRef);     //Add local character to player dictionary
            m_thisClientID = shMsg.clientID;                                 //keep a reference to local player ID
            SpawnRemotePlayers(shMsg.players);                               //Spawn remote players
            StartCoroutine(UploadClientDataRoutine(m_clientUpdateInterval)); //Start routinely updating server with local cube character data
            break;

        case Commands.NEW_PLAYER:
            PlayerUpdateMsg puMSg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("[Notice] A new player has connected. (" + puMSg.player.clientID + ")");
            SpawnRemotePlayer(puMSg.player);
            break;

        case Commands.PLAYER_DISCONNECT:
            PlayerIDMsg pdMSg = JsonUtility.FromJson <PlayerIDMsg>(recMsg);
            Debug.Log("[Notice] A player has disconnected. (" + pdMSg.clientID + ")");
            RemoveRemotePlayer(pdMSg.clientID);
            break;

        default:
            Debug.LogError("[Error] Unrecognized message received!");
            break;
        }
    }
Exemple #19
0
    // on data received
    void OnData(DataStreamReader stream)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        switch (header.cmd)
        {
        // player handshake
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            SpawnPlayer(hsMsg.player);
            Debug.Log("Handshake message received!");
            break;

        // player update
        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            ClientPlayerUpdate(puMsg.players);
            Debug.Log("Player update message received!");
            break;

        // server update
        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server update message received!");
            break;

        // player list update
        case Commands.PLAYER_LIST:
            ClientListMsg listMsg = JsonUtility.FromJson <ClientListMsg>(recMsg);
            for (int p = 0; p < listMsg.players.Length; p++)
            {
                SpawnPlayer(listMsg.players[p]);
            }
            Debug.Log("Player list message received!");
            break;

        // player disconnect
        case Commands.PLAYER_DISCONNECT:
            DiscPlayerMsg discMsg = JsonUtility.FromJson <DiscPlayerMsg>(recMsg);
            RemoveClientPlayer(discMsg.players);
            Debug.Log("Player disconnect message received!");
            break;

        // player connect
        case Commands.PLAYER_JOIN:
            HandshakeMsg nhsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            ClientPlayerID = nhsMsg.player.id;
            SpawnPlayer(nhsMsg.player);
            break;

        default:
            Debug.Log("Unrecognized message received!");
            break;
        }
    }
    void OnData(DataStreamReader stream, int i)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Handshake message received!");
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("Player update message received!");

            Debug.Log("Player List: " + serverPlayerList);
            foreach (NetworkObjects.NetworkPlayer player in serverPlayerList)
            {
                if (player.id == puMsg.player.id)
                {
                    player.cubeColor = puMsg.player.cubeColor;
                    player.cubPos    = puMsg.player.cubPos;
                    player.cubRot    = puMsg.player.cubRot;
                }
            }
            break;

        case Commands.PLAYER_BULLET:
            PlayerBulletMsg pbMsg = JsonUtility.FromJson <PlayerBulletMsg>(recMsg);
            Debug.Log("Player Bullet Fired!");
            FireBulletForPlayers(pbMsg, m_Connections[i]);
            break;

        case Commands.PLAYER_JOINED:
            PlayerJoinMessage pjMsg = JsonUtility.FromJson <PlayerJoinMessage>(recMsg);
            Debug.Log("Player join message received!");
            CreatePlayer(pjMsg, m_Connections[i]);
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server update message received!");
            break;

        case Commands.PLAYER_LEFT:
            PlayerLeaveMsg plMsg = JsonUtility.FromJson <PlayerLeaveMsg>(recMsg);
            Debug.Log("Player leave message recieved!");
            OnDisconnect(int.Parse(plMsg.player.id));
            break;

        default:
            Debug.Log("SERVER ERROR: Unrecognized message received!");
            break;
        }
    }
Exemple #21
0
    void HandShake()
    {
        //// Example to send a handshake message:
        HandshakeMsg m = new HandshakeMsg();

        m.player.id = m_Connection.InternalId.ToString();
        SendToServer(JsonUtility.ToJson(m));
    }
Exemple #22
0
    /**
     *  Client Response Functions from server messages
     */

    // Response function to setup controlled players ID
    void SetupClient(HandshakeMsg hsMsg) //done
    {
        controlledPlayer = Instantiate(playerPrefab);
        controlledPlayer.GetComponent <PlayerController>().clientControlled = true;
        controlledPlayer.GetComponent <PlayerController>().networkClient    = this;
        controlledPlayerUpdateMSG.player.id = hsMsg.player.id;
        controlledClientID = hsMsg.player.id;
    }
    void SendRepeatedHandshake()
    {
        HandshakeMsg m = new HandshakeMsg();

        m.player.id = myPlayer.id;
        SendToServer(JsonUtility.ToJson(m));
        Debug.Log("(Client: " + m.player.id.ToString() + ") Sending a handshake");
    }
    void OnConnect(NetworkConnection c)
    {
        m_connections.Add(c);
        HandshakeMsg handshake = new HandshakeMsg();

        handshake.player.id = c.InternalId.ToString();
        SendToClient(JsonUtility.ToJson(handshake), c);
        Debug.Log("New Client ID: " + handshake.player.id.ToString() + " Is Being Connected.");
    }
    void OnData(DataStreamReader stream)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg);

        switch (header.cmd)
        {
        case Commands.PLAYER_INIT:
            InitializeConnectionMsg piMsg = JsonUtility.FromJson <InitializeConnectionMsg>(recMsg);

            playerUpdateMsg.player.id = piMsg.yourID;

            HandshakeMsg m = new HandshakeMsg();
            m.player    = playerUpdateMsg.player;
            m.player.id = piMsg.yourID;
            SendToServer(JsonUtility.ToJson(m));

            otherPlayers.Add(m.player.id, yourCharacter);

            Debug.Log("Initialization message received!  Your ID: " + piMsg.yourID);
            break;

        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Handshake message received!");
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("Player update message received!");
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            UpdateNetworkObjects(suMsg);
            Debug.Log("Server update message received!");
            break;

        case Commands.PLAYER_DROPPED:
            ConnectionDroppedMsg cdMsg = JsonUtility.FromJson <ConnectionDroppedMsg>(recMsg);

            // Destroy
            GameObject character = otherPlayers[cdMsg.droppedId];
            otherPlayers.Remove(cdMsg.droppedId);
            Destroy(character);

            Debug.Log("Player dropped message received! " + cdMsg.droppedId);
            break;

        default:
            Debug.Log("Unrecognized message received!");
            break;
        }
    }
Exemple #26
0
    void OnData(DataStreamReader stream)
    {
        NativeArray <byte> bytes = new NativeArray <byte>(stream.Length, Allocator.Temp);

        stream.ReadBytes(bytes);                                             //Get bytes
        string        recMsg = Encoding.ASCII.GetString(bytes.ToArray());    //convert bytes to JSON string
        NetworkHeader header = JsonUtility.FromJson <NetworkHeader>(recMsg); //convert JSON to c# class

        switch (header.cmd)
        {
        case Commands.HANDSHAKE:
            HandshakeMsg hsMsg = JsonUtility.FromJson <HandshakeMsg>(recMsg);
            Debug.Log("Handshake message received!");
            break;

        case Commands.PLAYER_WHOAMI:
            PlayerUpdateMsg internalId = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("Got internalId from server");
            playerInfo.player.id = internalId.player.id;
            playerIDText.SetText(playerInfo.player.id);
            myIDLabel.SetText(playerInfo.player.id);
            break;

        case Commands.PLAYER_UPDATE:
            PlayerUpdateMsg puMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("Got data from server, player Pos: " + puMsg.player.pos);
            break;

        case Commands.SERVER_UPDATE:
            ServerUpdateMsg suMsg = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("Server update message received!");
            UpdateClientsInfo(suMsg);
            break;

        case Commands.ALREADY_HERE_PLAYERS:
            ServerUpdateMsg alreadyHerePlayerInfo = JsonUtility.FromJson <ServerUpdateMsg>(recMsg);
            Debug.Log("existed player info received!");
            SpawnPlayersAlreadyHere(alreadyHerePlayerInfo);
            break;

        case Commands.SPAWN_NEW_PLAYER:
            PlayerUpdateMsg newPlayerMsg = JsonUtility.FromJson <PlayerUpdateMsg>(recMsg);
            Debug.Log("new client info received!");
            SpawnNewPlayer(newPlayerMsg);
            break;

        case Commands.DISCONNECTED_PLAYER:
            DisconnectedPlayersMsg dpMsg = JsonUtility.FromJson <DisconnectedPlayersMsg>(recMsg);
            Debug.Log("Player disconnected :(");
            DeleteDisconnectPlayer(dpMsg);
            break;

        default:
            Debug.Log("Unrecognized message received!");
            break;
        }
    }
Exemple #27
0
    ///-------------------Client Player Functions----------------------//

    // Sends the client player to server to be included
    void ConnectClientPlayer(HandshakeMsg msg)
    {
        clientPlayer.id  = msg.player.id;
        clientPlayer.pos = RandomPos(5);

        HandshakeMsg handShake = new HandshakeMsg();

        handShake.player = clientPlayer;
        SendToServer(JsonUtility.ToJson(handShake));
    }
    void AddPlayer(HandshakeMsg msg)
    {
        Allplayers.Add(msg.player);

        ServerUpdateMsg ServerUpdate = new ServerUpdateMsg();

        ServerUpdate.players = Allplayers;
        ServerUpdate.type    = ServerUpdateMsg.UpdateType.ADD;
        SendToAllClients(JsonUtility.ToJson(ServerUpdate));
    }
    void OnConnect()
    {
        Debug.Log("We are now connected to the server");


        HandshakeMsg m = new HandshakeMsg();

        m.player.id = player.id;
        SendToServer(JsonUtility.ToJson(m));
    }
 void HandShake()
 {
     foreach (NetworkConnection c in m_Connections)
     {
         //// Example to send a handshake message:
         HandshakeMsg m = new HandshakeMsg();
         m.player.id = c.InternalId.ToString();
         SendToClient(JsonUtility.ToJson(m), c);
     }
 }
Exemple #31
0
    void Start()
    {
        if(rb == null) rb = GetComponent<Rigidbody>();

        rb.isKinematic = !isLocalPlayer;

        transform.SetParent(GameObject.Find("Play Area").transform);
        transform.localPosition = Vector3.up * 2f;

        if (this.isLocalPlayer)
        {
            HandshakeMsg msg = new HandshakeMsg();
            msg.username = ((GameNetworkManager)NetworkManager.singleton).Username;
            NetworkManager.singleton.client.Send(HandshakeMsg.msgType, msg);
        }
    }