Exemple #1
0
        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();
        }
Exemple #2
0
 public void Init(Levels.GameScheduler game)
 {
     LoadMidis();
     LoadLangOptions();
     LoadSkins();
 }