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(); }