Beispiel #1
0
 /// <summary>
 /// 发送消息
 /// </summary>
 public void SendMsg(string channel, MsgEntity msg, bool isSave = false)
 {
     Task.Factory.StartNew(() =>
     {
         _redisHelper.Publish(channel, msg.JsonSerialize());
         // 保存消息
         if (isSave)
         {
             SaveMsg(channel, msg);
         }
     });
 }
Beispiel #2
0
        private void _btnSendMsgTest_Click(object sender, EventArgs e)
        {
            if (_isSendMsgTest)
            {
                return;
            }
            _isSendMsgTest          = true;
            _btnSendMsgTest.Enabled = false;
            _btnSendMsgTest.Text    = @"并发消息测试...";

            if (Int32.TryParse(_txtThreadSleepTime.Text, out var threadSleepTime))
            {
                var msgModel = new MsgEntity
                {
                    MsgId    = Guid.NewGuid().ToString().Replace("-", "").ToLower(),
                    Type     = (int)MsgTypeEnum.文本,
                    Data     = "",
                    FromId   = _userId,
                    FromName = ""
                };

                Task.Factory.StartNew(() =>
                {
                    var count = 10;
                    if (Int32.TryParse(_txtSendMsgCount.Text, out var sendMsgCount))
                    {
                        count = sendMsgCount;
                    }

                    while (_isSendMsgTest && count-- > 0)
                    {
                        msgModel.MsgId = Guid.NewGuid().ToString().Replace("-", "").ToLower();
                        msgModel.Data  = $"这是一条测试消息!{threadSleepTime}毫秒发送一次,共{sendMsgCount}次,次数:{count}";
                        //var buffer = new ArraySegment<byte>(Encoding.UTF8.GetBytes(msgModel.JsonSerialize()));
                        //await _clientWebSocket.SendAsync(buffer, WebSocketMessageType.Text, true, CancellationToken.None);
                        _webSocketHelper.SendMsg(msgModel.JsonSerialize());
                        Thread.Sleep(threadSleepTime);

                        if (_checkBoxAutoClear.Checked)
                        {
                            ClearListBox();
                        }
                    }
                    _isSendMsgTest          = false;
                    _btnSendMsgTest.Enabled = true;
                    _btnSendMsgTest.Text    = @"并发消息测试";
                });
            }
        }