Esempio n. 1
0
 public void SendHeadbeat()
 {
     Task.Factory.StartNew(() =>
     {
         while (true)
         {
             bool isStart = true;
             while (isStart)
             {
                 if (m_wsQClient != null && m_wsQClient.IsConnected)
                 {
                     var m          = new object();
                     byte[] request = SerHelper.Serialize(m);
                     _logger.LogInformation($"[SendHeadbeat] 发送心跳");
                     m_wsQClient.Send(request);
                 }
                 else
                 {
                     isStart = false;
                     break;
                 }
                 Thread.Sleep(20 * 1000);//休眠20秒
             }
         }
     });
 }
Esempio n. 2
0
        private void WSClient__Opened(object sender, EventArgs e)
        {
            if (m_wsQClient.IsConnected && ((AsyncTcpSession)sender).LocalEndPoint == m_wsQClient?.LocalEndPoint)
            {
                Task.Factory.StartNew(() =>
                {
                    while (true)
                    {
                        if (m_wsQClient != null && m_wsQClient.IsConnected)
                        {
                            OMDC_HeartBeatReq HB = new OMDC_HeartBeatReq();
                            HB.head.PktSize      = BitConverter.GetBytes((UInt16)40);
                            HB.head.MsgCount[0]  = 1;
                            HB.head.Filter[0]    = 0;
                            HB.head.SeqNum       = BitConverter.GetBytes(num);
                            HB.head.SendTime     = BitConverter.GetBytes(GETTick() * 100);
                            HB.msgType.MsgSize   = BitConverter.GetBytes((UInt16)24);
                            HB.msgType.MsgType   = BitConverter.GetBytes((UInt16)1000);
                            byte[] request       = SerHelper.Serialize(HB);

                            m_wsQClient.Send(request);
                            Console.WriteLine($"heartbeat_{num}:{ByteConvertUtil.byteToHexStr(request)}");
                        }
                        num++;
                        Thread.Sleep(1500);
                    }
                });
            }
        }