【发布时间】:2016-05-12 18:31:04
【问题描述】:
我有以下场景:
本地 PC 通过蓝牙以 50.000 位/秒的速度接收数据样本。数据通过 UDP 发送到某个服务器。服务器依次通过网页/JavaScript 和网络套接字将数据分发到处理数据的连接浏览器。最终,来自浏览器的结果通过 UDP 传递回本地 PC。
到目前为止,我正在尝试严格的本地设置,即一切都在一台具有四核 CPU 的机器上运行。我已经在 node.js 和 golang 中编写了服务器代码。在这两种情况下都存在大量数据丢失,即即使仅连接一个 Web 套接字客户端,服务器也不会成功接收通过 UDP 发送的每个样本。
造成损失的瓶颈在哪里?是不是所有东西都在本地机器上运行?会不会是 web socket 带宽太小了?使用 WebRTC 会更好吗?还是完全是另外一回事?
【问题讨论】:
-
假设没有网络问题,丢失消息意味着您阅读它们的速度不够快。没有任何代码,我们无法真正给您答案。
-
"WebRTC 会更好吗?" 如果您不告诉您应用程序的目的是什么,用户将如何相互连接,我们无法告诉您(p2p 是一种选择吗? ) 以及您预期的用户群将是什么。
-
我只能说,UDP 不保证数据包的到达。现在看起来,没有什么不寻常的,您的网络上是否还有很多其他流量?这很容易在 UDP 连接中导致更多的数据包丢失。
标签: node.js go websocket udp webrtc