Asp.net core 与保持websocket连接相比,每5,3,1秒拉动10000个客户端的性能如何

Asp.net core 与保持websocket连接相比,每5,3,1秒拉动10000个客户端的性能如何,asp.net-core,signalr,Asp.net Core,Signalr,考虑到10000个客户端,Web服务器(kestrel上的signalr和aspnet core)对 回答普通rest api get请求(调用之间的间隔为5,3,1秒)(查询字符串上的令牌指针用于指示它已接收到的数据,如果等于最新指针,则为noop) 维护websocket连接并仅在数据更新时推送 让我们假设在这两个示例中,从存储中检索数据也是一个NOOP,所以问题只是关于WebSocket和请求 如果这10000个客户端是移动设备,那么获取数据所需的最大功率是什么?保持websocket打开

考虑到10000个客户端,Web服务器(kestrel上的signalr和aspnet core)对

  • 回答普通rest api get请求(调用之间的间隔为5,3,1秒)(查询字符串上的令牌指针用于指示它已接收到的数据,如果等于最新指针,则为noop)
  • 维护websocket连接并仅在数据更新时推送
  • 让我们假设在这两个示例中,从存储中检索数据也是一个NOOP,所以问题只是关于WebSocket和请求


    如果这10000个客户端是移动设备,那么获取数据所需的最大功率是什么?保持websocket打开或拉取数据?

    您需要平衡的是连接成本与数据传输成本

    如果10000个客户端的更新速度为每秒5,3,1次,您最好使用web套接字,因为每个请求的服务器处理量较少,一旦初始化,就可以通过每个客户端建立的连接传输数据

    Websocket在连接和断开连接时不会像http那样占用资源,而且它还可以节省您的带宽