Ejemplo n.º 1
0
    public IEnumerator ConnectToGame(string address, OnConnect callback)
    {
        if (GameServer.Connecting || GameServer.Connected())
        {
            Debug.LogWarning("Trying to connect to a node while still connected to another node.");
            callback(false);
            yield break;
        }

        GameServer.Connecting = true;

        Log("Connecting to " + address);
        WebSocket ws = new WebSocket(new Uri(address));

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

        if (ws.error != null)
        {
            Debug.LogError("Error: " + ws.error);
            ws = null;
            yield break;
        }
        else
        {
            Log("Connected to Node");
        }

        // Start message pump
        MessagePump game = new MessagePump(ws);

        game.AddDisconnectListener(GameServer.OnDisconnect);
        GameServer.Setup(game, this);

        callback(true);
        GameServer.Connecting = false;
    }