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("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);
            Debug.Log("Server update message received!");
            break;

        case Commands.PLAYER_INTO:
            PlayerIntoMsg pMsg = JsonUtility.FromJson <PlayerIntoMsg>(recMsg);
            Debug.Log("Player into message received!");
            if (ID != pMsg.UnityID)
            {
                Instantiate(playerCube, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity);
            }
            break;

        case Commands.PLAYER_CUBE:
            PlayerCubeMsg pcMsg = JsonUtility.FromJson <PlayerCubeMsg>(recMsg);
            Debug.Log("Player movement update message received!");
            foreach (GameObject p in GameObject.FindGameObjectsWithTag("Player"))
            {
                if (p != CubeObj && pcMsg.UnityID != ID)
                {
                    p.transform.position = pcMsg.Point;
                }
            }

            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!");
            break;

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

        case Commands.PLAYER_INTO:
            PlayerIntoMsg pMsg = JsonUtility.FromJson <PlayerIntoMsg>(recMsg);
            Debug.Log("Player into message received!");
            playerMsg.Add(pMsg);
            foreach (NetworkConnection P in m_Connections)
            {
                SendToClient(JsonUtility.ToJson(pMsg), P);
            }
            break;

        case Commands.PLAYER_CUBE:
            PlayerCubeMsg pcMsg = JsonUtility.FromJson <PlayerCubeMsg>(recMsg);
            Debug.Log("Player Cube message received!");
            foreach (NetworkConnection P in m_Connections)
            {
                SendToClient(JsonUtility.ToJson(pcMsg), P);
                Debug.Log("Server cube");
            }
            break;

        default:
            Debug.Log("SERVER ERROR: Unrecognized message received!");
            break;
        }
    }
    IEnumerator SendPos()
    {
        while (true)
        {
            if (CubeObj)
            {
                yield return(new WaitForSeconds(0.1f));

                PlayerCubeMsg m = new PlayerCubeMsg();
                m.Point   = CubeObj.transform.position;
                m.UnityID = ID;
                SendToServer(JsonUtility.ToJson(m));
                Debug.Log("SPtext");
            }
        }
    }