Exemple #1
0
    public void connect()
    {
        if (isConnecting)
        {
            return;
        }

        if (gamePlayController == null)
        {
            Debug.Log("gamePlayController is null, can't connect");
            return;
        }

        Debug.Log("connecting to server ...");
        startConnTime = DateTime.Now;
        isConnecting  = true;

        socketManager = new SocketManager(new Uri(ServerUtils.GetSocketIOUrl()), options);
        socketManager.Socket.On(SocketIOEventTypes.Error,
                                (socket, packet, args) => {
            Debug.LogError(string.Format("Error: {0}", args[0].ToString()));
            if (gamePlayController != null)
            {
                gamePlayController.ShowConnectFailMessage();
                //socketManager.Socket.Off();
            }
        });
        socketManager.Socket.On(SocketIOEventTypes.Disconnect, (socket, packet, eventArgs) => {
            Debug.Log("lose connection");
            if (gamePlayController != null)
            {
                gamePlayController.isConnected = false;
            }
            isConnecting = false;
        });
        socketManager.Socket.On(SocketIOEventTypes.Connect, (socket, packet, arg) => {
            gameSocket = socketManager.Socket;
            gamePlayController.connect     = this;
            gamePlayController.isConnected = true;
            JoinRoom();
            gamePlayController.SetGameSocket(gameSocket);
            gamePlayController.isConnected = true;
            //连接成功,自动关闭错误消息
            gamePlayController.ConnectFailConfirmClick();
            isConnecting = false;
        });
        socketManager.Open();
    }