public void Init(Levels.GameScheduler game) { //#if UNITY_EDITOR // websocket = new WebSocket("ws://192.168.1.102:6008"); //#else if (game.appConfig.networkEndpoint == 0) { websocket = new WebSocket("wss://thmix.org/websocket"); } else { websocket = new WebSocket("wss://asia.thmix.org/websocket"); } //#endif websocket.OnOpen += OnSocketOpen; websocket.OnClose += OnSocketClose; websocket.OnMessage += OnSocketMessage; websocket.OnError += OnSocketError; Debug.Log("Connecting..."); new Task(() => { try { connecting = true; netStatus = NetStatus.CONNECTING; onNetStatusChangedEvent?.Invoke(NetStatus.CONNECTING); websocket.Connect(); } catch (System.Exception ex) { Debug.LogError(ex); Reconnect(); } }).Start(); pingTask = new Task(async() => { try { var watch = new Stopwatch(); watch.Start(); while (true) { await Task.Delay(50000); watch.Stop(); watch.Reset(); watch.Start(); if (available) { ClAppPing((int)watch.ElapsedMilliseconds, (err, data) => { if (err != null) { Debug.LogError(err); return; } rtt = (int)(watch.ElapsedMilliseconds) - (int)(double)data; netStatus = NetStatus.ONLINE; onNetStatusChangedEvent?.Invoke(NetStatus.ONLINE); Debug.Log("pong " + rtt); }); } if (isDisposed) { break; } } } catch (System.Exception e) { Debug.LogError(e); } }); pingTask.Start(); }
public void Init(Levels.GameScheduler game) { LoadMidis(); LoadLangOptions(); LoadSkins(); }