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