private void Run() { WebSocketClient handler; if (TapeSimulatorSetting.Instance.IsDirectConnectToEss) { handler = new WebSocketClient(string.Format("ws://{0}:{1}", _host, Interlocked.Increment(ref _portNumber)), _userName, _password, _applianceGuid, _applianceDisplayName); } else { handler = new WebSocketClient(string.Format("ws://{0}:{1}",_host,_portNumber), _userName, _password, _applianceGuid, _applianceDisplayName); } while (true) { try { var request = (WebSocketRequest)_nextElement.Get(); if (handler.Status == WebSessionStatus.Inactive) { handler.Login(); } handler.SendRequest(request, true); } catch (ThreadAbortException) { //Close the websocket connection handler.Dispose(); } catch (Exception e) { Console.WriteLine("Exception in batch WebSocket pipeline AysncWebSocket.", e); } } }
public static object SendRequestReturnResult(WebSocketClient handler, WebSocketRequest request) { var syncRequest = new WebSocketSyncRequest(request); WebSocketNotificationHandler.InitWaitEvent(syncRequest); object result = null; if (handler.SendRequest(request)) { result = WebSocketNotificationHandler.WaitResponse(syncRequest); } return result; }