public bool startServer(bool IsFirstConnection) { try { if (webSocket != null && (webSocket.ReadyState == WebSocketState.Connecting || webSocket.ReadyState == WebSocketState.Open)) { webSocket.Close(); } webSocket = new WebSocket(socketUrl); webSocket.OnOpen += (sender, e) => onOpen(sender, e); webSocket.OnMessage += (sender, e) => onMessage(sender, e); webSocket.OnError += (sender, e) => onError(sender, e); //去掉OnClose,因为如果服务器一直重连不上,经过多次连接之后,会报堆栈溢出,是由于陷入死循环了 //webSocket.OnClose += (sender, e) => OnClose(sender, e); webSocket.Connect(); if (IsFirstConnection && webSocket.ReadyState != WebSocketState.Connecting && webSocket.ReadyState != WebSocketState.Open) { return(false); } if (sendTimer != null) { sendTimer.Start(); } return(true); } catch (Exception ex) { _WebScoketHelper.LogMsg("QuotesServerWSClient连接异常:" + ex.ToString()); _WebScoketHelper.GetMessageBoxQuotesShow("交易服务连接异常!"); return(false); } }
/// <summary> /// bll调用 /// </summary> /// <param name="mess"></param> public void SendTradeWSInfo(string mess) { try { string sendMsg = "<HX>" + mess + "<END>"; tradeWS.sendMessage(sendMsg); } catch (Exception ex) { _WebScoketHelper.LogMsg(string.Format("发送命令错误:{0}", ex.ToString())); } }