gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:38:35 25 4
gpt4 key购买 nike

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

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

我不确定哪个表现最好:短而快还是长而稀有。

最佳答案

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

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


另一种方法是使用 UDP,但它是有损的,因此在您的情况下不是很有用。

关于c# - SignalR 用于高频消息传递的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39964453/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com