SignalR用于高频消息传递的性能

本文关键字:性能 消息传递 高频 用于 SignalR | 更新日期: 2023-09-27 18:12:20

我目前在WPF应用程序中自托管SignalR服务器。在这个应用程序中,我需要在客户机上每秒至少调用500次方法。现在我在每次更改时都在客户端调用该方法。客户端的CPU太高了。我要转移的对象包含大约20个基本属性。

我的要求是我不能丢失或跳过任何消息。但是我可以每秒以一个列表的形式发送通知

我不确定哪个效果最好:短而快还是长而少。

SignalR用于高频消息传递的性能

我将缓冲信息服务器端(仅存储更改)并等待客户端请求新数据。每次客户端请求数据时,服务器以一个数据包(二进制)发送信息。当客户端处理完数据后,它请求新的数据。这样可以防止在套接字上写入太多数据,从而不会阻塞。队列的长度是客户端传输/处理的指示。当队列增长太大(服务器端)您的网络不够快或您的客户端无法处理那么多数据。

我在我的软件上使用这种方法,该软件连接到发送机器人角度/位置当前状态的PLC


另一种方法是使用UDP,但它是有损的,所以在你的情况下不是很有用。