首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >发送带有一个连接的并发SignalR消息

发送带有一个连接的并发SignalR消息
EN

Stack Overflow用户
提问于 2021-11-29 16:30:07
回答 1查看 450关注 0票数 3

如何与一个连接并行地发送多个SignalR消息?

我有以下集线器方法:

代码语言:javascript
运行
复制
public async Task Test()  
{  
    Console.WriteLine($"Start: {DateTime.Now}");  
    await Task.Run(() => Task.Delay(1000));  
    Console.WriteLine($"Stop: {DateTime.Now}");  
} 

在我的客户端,我有以下连接:

代码语言:javascript
运行
复制
private connection: HubConnection = new HubConnectionBuilder()
  .withUrl(this.url)
  .configureLogging(LogLevel.Information)
  .withAutomaticReconnect([1000, 2000, 3000, 4000, 5000])
  .build();

我像这样调用集线器方法:

代码语言:javascript
运行
复制
async test(): Promise<void> {
  try {
    console.log('start: ' + new Date().toString());
    await this.connection.invoke('Test');
    console.log('stop: ' + new Date().toString());
  } catch (err) {
    console.error(err);
  }
}

当我在客户端中多次调用测试方法时,集线器是一个接一个地接收消息,而不是同时接收所有消息。

客户日志:

开始时间:11月29日17:27:35 GMT+0100 (3) 停止:周一11月29日2021 17:27:36 GMT+0100 停止:周一11月29日2021 17:27:37 GMT+0100 停止: Mon 11月29日2021 17:27:38 GMT+0100

服务器日志:

起点: 29.11.2021 17:27:35 停车时间: 29.11.2021 17:27:36 起点: 29.11.2021 17:27:36 停车时间: 29.11.2021 17:27:37 起点: 29.11.2021 17:27:37 停车时间: 29.11.2021 17:27:38

EN

回答 1

Stack Overflow用户

发布于 2021-11-30 07:43:43

为了允许每个客户端多个并行调用,需要设置MaximumParallelInvocationsPerClient属性,如下所示:

代码语言:javascript
运行
复制
builder.Services.AddSignalR(options => options.MaximumParallelInvocationsPerClient = 10);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70157999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档