Esempio n. 1
0
    private IEnumerator OpenConnectionToServer()
    {
        w = new WebSocket(new Uri("ws://localhost:3000/ws"));

        yield return(StartCoroutine(w.Connect()));

        w.SendString("{\"type\":\"CONNECTED\"}");
        stateManager.ChangeConnectionState(ConnectionState.CONNECTED);

        while (true)
        {
            string reply = w.RecvString();



            ServerMessage message = JsonUtility.FromJson <ServerMessage>(reply);
            if (reply != null)
            {
                if (message.type == "LoginRequest")
                {
                    DispatchMessage(JsonUtility.FromJson <LoginRequestMessage> (reply));
                }
                if (message.type == "LoginSuccessful")
                {
                    DispatchMessage(JsonUtility.FromJson <LoginRequestMessage> (reply));
                }

                if (message.type == "RequestCharacterResponse")
                {
                    DispatchMessage(JsonUtility.FromJson <RequestCharacterResponse> (reply));
                    RequestCharacterResponse characters = JsonUtility.FromJson <RequestCharacterResponse> (reply);

                    for (int i = 0; i < characters.payload.characters.Length; i++)
                    {
                        Debug.Log(characters.payload.characters[i].name);
                        Debug.Log(characters.payload.characters[i].ownerid);
                        Debug.Log(characters.payload.characters[i].position.x);
                        Debug.Log(characters.payload.characters[i].position.y);
                        Debug.Log(characters.payload.characters[i].mapid);
                        Debug.Log(characters.payload.characters[i].spriteid);
                    }
                }
            }
            if (w.error != null)
            {
                Debug.LogError("Error: " + w.error);
                wsopen = false;
                stateManager.ChangeConnectionState(ConnectionState.DISCONNECTED);
                break;
            }
            yield return(0);
        }
        w.Close();
    }
    public void ReceiveMessage <T>(T message)
    {
        if (typeof(T) == typeof(RequestCharacterResponse))
        {
            RequestCharacterResponse characters = message as RequestCharacterResponse;

            Debug.Log("Character Select");
            for (int i = 0; i < characters.payload.characters.Length; i++)
            {
                Debug.Log(characters.payload.characters [i].name);
                Debug.Log(characters.payload.characters [i].ownerid);
                Debug.Log(characters.payload.characters [i].position.x);
                Debug.Log(characters.payload.characters [i].position.y);
                Debug.Log(characters.payload.characters [i].mapid);
                Debug.Log(characters.payload.characters [i].spriteid);
            }
        }
    }