Пример #1
0
        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);
                }
            }
        }
Пример #2
0
        //如果连接尚未建立,则会丢弃消息
        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);
            }
        }
Пример #3
0
 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());
         }
     }
 }