void Beat(Object state) { //启动超时判定 TimeOut.Change(TimeoutPeriod, Timeout.Infinite); /// /// 发送请求 /// reqSock.SendMessage(msg); /// /// 接收回来的消息 /// var repMsg = reqSock.ReceiveMessage(); if (repMsg != null && repMsg.FrameCount > 0) { TimeOut.Change(Timeout.Infinite, Timeout.Infinite); int heart = repMsg[0].ConvertToInt32(); ConsoleEx.DebugLog("Heart from Server : " + heart.ToString()); //开始下一个时间任务 if (heart == 1) { RepeatTimer.Change(IntervalPeriod, Timeout.Infinite); } } }
//如果连接尚未建立,则会丢弃消息 void sendAndRecv(NetMQMessage msg) { if (connected == false) { return; } /// /// 发送请求 /// reqSock.SendMessage(msg); if (connected == false) { return; } /// /// 接收回来的消息 /// var repMsg = reqSock.ReceiveMessage(); //处理消息 if (repMsg != null && repMsg != null) { handler(repMsg); } }
public byte[] GetSnapshot(string topic) { using (NetMQContext ctx = NetMQContext.Create()) { using (RequestSocket socket = ctx.CreateRequestSocket()) { socket.Connect(Address); socket.Send(topic); NetMQMessage message = socket.ReceiveMessage(); return(message.Last.ToByteArray()); } } }