session 室中 200 台 ipad 上的 SignalR 轮询应用程序。投票时带宽瓶颈?

标签 signalr wireless bandwidth

我的应用程序会在您的 iPad 上弹出一个投票问题。你投票。您会看到结果。

目标是让 200 人呆在礼堂里,给他们 iPad,然后进城。我有 iPad 并尝试过这个。在设施外的硬网络线路上运行良好,大约 8mb。当我到达两个负载平衡 Gradle 点时,4G LTE 的投票就会停止。

现在显而易见的答案是您的带宽较低。确实如此。仅显示 2-3MB。但我的想法是,这应该足够了。 SignalR 和 WebAPI(我用它来将实际投票写入 SQL)不应该丢弃大量数据来注册简单的多项选择投票。

我用了fiddler,看了一票。传输的数据量约为 1K,大部分位于 header 中。所以 200 票应该是 200K 左右。我如何突破 2-3MB 的限制?一旦我们摆脱无线并回到强硬路线,一切都会恢复正常。

这纯粹是带宽下降导致速度下降,还是无线与硬线固有的其他因素也可能减慢速度。

注意,不涉及 dhcp。 IP 已预先设置(保留)。

最佳答案

除了带宽之外,您的 LTE 设置还存在其他潜在问题。主要的一个是路由器上的 NAT。我对您正在使用的那些路由器一无所知,但它们可能无法处理大量开放连接。它们可以处理的连接数量在处理能力和内存方面都会受到限制。最重要的是,您应该添加 LTE 连接带来的延迟增加,这会使一切变得更慢。我假设您每台 iPad 至少使用 2 个连接(一个用于投票,一个用于提交投票)。这意味着路由器必须处理 400 个并发连接。笔记本电脑上启动 500 次下载的简单脚本将向您显示它是否可以承受这种负载。

您的 LTE 提供商也可能存在 NAT,这可能会导致问题。我在电信公司见过奇怪的事情,因为他们觉得投票连接开放很长时间而放弃你的投票连接可能就是其中之一。但这并不是我第一个想到的地方。

位置也可能很重要,您测量了 LTE 上的 2MB 带宽,但是在这 200 个人都携带智能手机的人走进房间后,您是否再次测量了该带宽?本地的手机信号塔可能已经重载了。我曾经尝试在室外游泳池通过移动连接做一些事情,直到第一个美好的一天,那里有 500 多人时,一切都进展顺利。

根据您的系统工作方式,在 iPad 和服务器之间引入本地集中器可能非常容易,该集中器可以预加载问题、缓存结果并批量投票。这将大大减少传出连接的数量和所需的带宽。

关于 session 室中 200 台 ipad 上的 SignalR 轮询应用程序。投票时带宽瓶颈?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25857563/

相关文章:

linux - 以 Mbps 为单位的带宽计算

asp.net - 在集线器上下文之外调用 SignalR 集线器中的 Caller 方法

azure - 如何将VS中local.settings.json中存储的SignalRConnectionString上传到azure门户上的Azure函数

c# - SignalR hub 中的事件处理程序

javascript - 信号 R : How to send a complex object with XmppClient. 发送方法?

keyboard - 什么是程序员的*最佳*无线键盘/鼠标套装?

android - 是否可以手动激活移动网络?

python - Scapy 发送探测请求并接收探测响应

io - 内存和 IO 带宽之间有什么区别,我们如何测量它们?

algorithm - 用通俗易懂的语言解释数据包对探测算法