private void Connect() { webSocket = new WebSocket(this.hostUri); webSocket.WaitTime = new TimeSpan(0, 0, 1); webSocket.OnOpen += (sender, e) => { Debug.Log("SocketIO Connected " + sender.ToString() + " " + e.ToString() + " " + webSocket.Protocol + " " + webSocket.Extensions); }; webSocket.OnClose += (sender, e) => { Debug.LogError("SocketIO Disconnected " + sender.ToString() + " " + e.Reason); if (this.closing == false && GameManager.GetInstance(player_number) != null) { webSocket.Connect(); } }; webSocket.OnError += (sender, e) => { Debug.LogError(sender); Debug.LogError(e.Exception); Debug.LogError(e.Message); }; webSocket.OnMessage += (sender, e) => { var data = e.Data; //Debug.Log(data); // example string: // '42["action",{"evenType":"action","desiredState":[{"laneID":0,"position":0,"kick":false}]}]' // target string: // {"evenType":"action","desiredState":[{"laneID":0,"position":0,"kick":false}]} if (data.Contains("42[\"action\"")) { //Debug.Log(data); data = data.Remove(0, 12); const int removeFromEnd = 1; data = data.Remove(data.Length - removeFromEnd, removeFromEnd); data = data.Replace("\\", ""); ConsumeAction(ActionEvent.FromJsonString(data)); } }; Debug.Log("SocketIO Starting connection"); webSocket.Connect(); }