private void button_Click(object sender, RoutedEventArgs e) { byte[] bytes = { 0x21, 0x35, 0x22 }; SubscribeMsg msg = new SubscribeMsg(bytes, "good"); updateHlSingalMessageInfo(msg); }
public void StopTraceByUI(SubscribeMsg msg) { //前台关闭窗口后,需要清零计数 InitStaticNo(); //日志清零,以便下次以新文件开始记录 logMsg.initFileName(); }
// B方案呈现HL信令消息; private void updateHlSingalMessageInfo(SubscribeMsg msg) { //ScriptMessage scriptMessage = JsonHelper.SerializeJsonToObject<ScriptMessage>(msg.Data); //EventNew UIMsg = new EventNew(); //UIMsg.DisplayIndex = scriptMessage.NO; //UIMsg.TimeStamp = scriptMessage.time; //UIMsg.EventName = scriptMessage.message; //UIMsg.MessageDestination = scriptMessage.MessageDestination; //UIMsg.MessageSource = scriptMessage.MessageSource; //UIMsg.data = scriptMessage.data; //if (-1 != scriptMessage.UI.IndexOf("UE")) //{ // MessageList.m_MsgList.Add(UIMsg); //} //if (-1 != scriptMessage.UI.IndexOf("eNB")) //{ // MessageList.m_eNB_MsgList.Add(UIMsg); //} //if (-1 != scriptMessage.UI.IndexOf("gNB")) //{ // MessageList.m_gNB_MsgList.Add(UIMsg); //} //return; }
/// <summary> /// subscribe this security to get depths and trades /// подписать данную бумагу на получение стаканов и трейдов /// </summary> public void SubscribeTradesAndDepths(string security) { var subMsg = SubscribeMsg.Replace("message", $"depth:{security}"); _wsClient?.Send(subMsg); subMsg = SubscribeMsg.Replace("message", $"trades:{security}"); _wsClient?.Send(subMsg); }
private void OnSendTraceSwtich(SubscribeMsg msg) { string ip = "172.27.245.92"; //TODO if (!HasLinkWithSameIp(ip)) //没有对应的连接,返回。需要加入提示 { return; } _mapNetElementLinks[ip].SendTraceSwitch(msg.Data); }
private void updateHlSingalMessageInfo(SubscribeMsg msg) { EventNew UIMsg = new EventNew(); UIMsg.RawData = msg.Data; int maxNumber = 0; //按照界面区分自然编号 maxNumber = hlMessageUE.Count; UIMsg.DisplayIndex = maxNumber; this.dataGrid.Dispatcher.Invoke(new Action(() => { hlMessageUE.Add(UIMsg); })); return; }
/// <summary> /// 解析关注公共号消息 /// </summary> /// <param name="rootElement"></param> /// <returns></returns> private static SubscribeMsg getSubscribeMsgFromXML(XmlElement rootElement) { if (rootElement == null) { return(null); } try { SubscribeMsg submsg = new SubscribeMsg(); submsg.CreateTime = rootElement.SelectSingleNode("CreateTime").InnerText; submsg.Event = rootElement.SelectSingleNode("Event").InnerText; submsg.EventKey = rootElement.SelectSingleNode("EventKey").InnerText; submsg.FromUserName = rootElement.SelectSingleNode("FromUserName").InnerText; submsg.MsgType = rootElement.SelectSingleNode("MsgType").InnerText; //submsg.Ticket = rootElement.SelectSingleNode("Ticket").InnerText; submsg.ToUserName = rootElement.SelectSingleNode("ToUserName").InnerText; return(submsg); } catch (Exception ex) { } return(null); }
/// <summary> /// 回调函数,或者叫做委托函数,在初始化中注册,接收消息并显示到界面上 /// </summary> /// <param name="msg"></param> private void StartTraceByUI(SubscribeMsg msg) { ScriptMessage scriptMessage = JsonHelper.SerializeJsonToObject <ScriptMessage>(msg.Data); if (-1 != scriptMessage.UI.IndexOf("UE")) { this.lvUE.Dispatcher.Invoke(new Action(() => { UE_List.Add(scriptMessage); })); } if (-1 != scriptMessage.UI.IndexOf("eNB")) { this.lveNB.Dispatcher.Invoke(new Action(() => { ENB_List.Add(scriptMessage); })); } if (-1 != scriptMessage.UI.IndexOf("gNB")) { this.lvgNB.Dispatcher.Invoke(new Action(() => { GNB_List.Add(scriptMessage); })); } }
//断开连接 public void OnBreakSession(SubscribeMsg msg) { string procotol = GetProcotolTypeFromTopic(msg.Topic); ProcotolType pt = GetProcotolType(procotol); if (ProcotolType.Invalid == pt) { // unsupported procotol return; } var data = JsonHelper.SerializeJsonToObject <SessionData>(msg.Data); var key = $"{procotol}://{data.target.raddr}:{data.target.rport}"; if (!_Sessions.ContainsKey(key)) { return; } _Sessions[key].SendAsync(data.data); //发送数据 _Sessions[key].Stop(); //释放数据 _Sessions.Remove(key); }
//创建链接 public void OnMakeSession(SubscribeMsg msg) { string procotol = GetProcotolTypeFromTopic(msg.Topic); ProcotolType pt = GetProcotolType(procotol); if (ProcotolType.Invalid == pt) { // unsupported procotol return; } var sessionData = JsonHelper.SerializeJsonToObject <SessionData>(msg.Data); var key = $"{procotol}://{sessionData.target.raddr}:{sessionData.target.rport}"; if (_Sessions.ContainsKey(key)) { _Sessions[key].SendAsync(sessionData.data); //如果连接已经建立了,就只发送数据 return; } IASession session = null; if (ProcotolType.UDP == pt) { session = new UdpSession(sessionData.target); //TODO 先只处理udp协议 session.SendAsync(sessionData.data); } else if (ProcotolType.IP == pt) { session = new IpSession(sessionData.target); if (!session.Init(sessionData.target.laddr)) { return; } } _Sessions.Add(key, session); }
private void OnLinkMsgFromBoard(SubscribeMsg msg) { byte[] msgBytes = msg.Data; GtsMsgHeader header = GetHeaderFromBytes.GetHeader(msgBytes); string ip = GetIpFromTopic(msg.Topic); switch (header.u16Opcode) { case GtsMsgType.O_GTSAGTSM_LOGON_RSP: DealConnectRsp(ip); break; case GtsMsgType.O_GTSAGTSM_TRACE_CTRL_RSP: //发送开关的响应 DealSendTraceSwitchRsp(ip, msg.Data); break; case GtsMsgType.O_GTSAGTSM_FDL_RSP: break; case GtsMsgType.O_GTSAGTSM_FDL_COMPLETE_IND: break; case GtsMsgType.O_GTSAGTSM_FILTER_RULE_RSP: break; case GtsMsgType.O_GTSAGTSM_FILTER_RESET_RSP: break; case GtsMsgType.O_GTSAGTSM_TRACE_MSG: //抄送的消息 DealTraceMsg(msg.Data); break; default: break; } }
public void StartTraceByUI(SubscribeMsg msg) { ParseScript(); }
/// <summary> /// 连接管理一级订阅处理函数 /// </summary> /// <param name="msg">所需的数据消息</param> private void OnLinkMgr(SubscribeMsg msg) { //多层topic解析,当前版本为了简单,先使用直接调用的方式进行处理 }
private void OnGtsaMsgParse(SubscribeMsg msg) { _worker.ParseUdpData(msg.Data); }
private void OnIpFrameMsgParse(SubscribeMsg msg) { //TODO 使用推拉模式解析数据,但可能有顺序性的要求,先使用worker进行解析 _worker.ParseIpFrameData(msg.Data); }
private void OnSubscribe(SubscribeMsg msg) { SendAsync(msg.Data); }