Exemplo n.º 1
0
        internal void EnsureConnected()
        {
            if (_stopped)
            {
                return;
            }

            if (!GameSparksUtil.ShouldConnect)
            {
                return;
            }

            lock (this) {
                if (_WebSocketClient == null)
                {
                    _WebSocketClient = _gSPlatform.GetSocket(url, GSConnection_OnMessageReceived, OnClosed, OnOpened, OnError);
                }

                lock (_WebSocketClient)
                {
                    GameSparksWebSocketState state = _WebSocketClient.State;

                    if (mustConnectBy < DateTime.Now.Ticks && state == GameSparksWebSocketState.Connecting)
                    {
                        Terminate();
                    }
                    else if (state != GameSparksWebSocketState.Open && state != GameSparksWebSocketState.Connecting)
                    {
                        _WebSocketClient.Open();
                    }
                }
            }
        }
Exemplo n.º 2
0
        public ReliableWSConnection(string remotehost, int remoteport, IRTSessionInternal session) : base(remotehost, remoteport, session)
        {
            //GameSparks.Core.GameSparksUtil.LogMessageHandler = Console.WriteLine;

            session.Log("ReliableWSConnection", GameSparksRT.LogLevel.DEBUG, "wss://" + remotehost + ":" + remoteport);

            if (session.GetGSInstance() != null)
            {
                socket = session.GetGSInstance().GSPlatform.GetBinarySocket("wss://" + remotehost + ":" + remoteport, OnBinaryMessageReceived, OnClosed, OnOpened, OnError);
            }
            else
            {
                socket = new GameSparksWebSocket();
                socket.Initialize("wss://" + remotehost + ":" + remoteport, OnBinaryMessageReceived, OnClosed, OnOpened, OnError);
            }
            socket.Open();
        }