/// <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); } }); }
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 = @"并发消息测试"; }); } }