c# - 确保客户端已收到来自信号器服务器点的消息的好方法是什么

标签 c# client signalr

我有一个使用 SignalR 的 ASP.NET 服务器应用程序。我有一个 HTML5 客户端。服务器向我的客户端发送一个小字节数组(大约 12k)JPEG,客户端接收并显示 IMG 元素中的图像。

发送到客户端的数据频率不稳定,我担心过载。目前,我使用计时器控件定期从服务器中继消息。对于使用专用宽带连接的桌面浏览器,一切都运行顺利,但是如果我使用移动设备浏览器,无论出于何种原因(例如互联网连接不良和/或电池电量不足),移动设备都可能需要更长的时间来加载图像。

理想情况下,我希望我的客户向我的服务器发送确认消息,“说”图片已加载成功,我已准备好接收下一张图片。我可以通过信号客户端方法或调用 API 来促进收到的通知。

我担心两件事:

  • 从客户端到服务器调用的 header (等)的不必要开销

  • 否定使用 SignalR 的好处

我强烈倾向于仅依赖服务器控件中的计时器并增加移动设备的“超时”,但我对想法持开放态度。有没有其他人遇到过这种情况,如果遇到过,有不同的方法吗?

最佳答案

尝试 this answer 中记录的方法.

总结:为每个 JPEG 分配一个 ID。当客户端准备好下一张图片时,让它报告上次加载的图片的 ID,以便服务器知道下一张要发送的图片。

关于c# - 确保客户端已收到来自信号器服务器点的消息的好方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27767642/

相关文章:

c# - 获取连接到 SignalR 的客户端数量

tcp - 客户端 channel 不处于可写状态(NIO)Netty

java.io.EOFException(关闭流时出现问题)

c# - 按另一个列表更新列表 (linq)

c# - 从树或列表层次结构中查找对象

c - 使用 select() 在现有客户端或新客户端之间进行选择 (C)

c# - 从 .net 套接字向 signalR 集线器发送/接收消息

signalr - 在 SignalR 中启用服务器端日志记录

c# - LINQ查询优化: specifically, let子句的位置重要吗?

c# - 重新加载 CSS 而不刷新整个页面