首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >https websockets (wss)上的巨大延迟

https websockets (wss)上的巨大延迟
EN

Stack Overflow用户
提问于 2017-03-17 18:45:03
回答 1查看 1.3K关注 0票数 1

我正在开发一个名为mope.io的mmo浏览器游戏(游戏是在https://mope.io上进行的)--我们最近增加了https支持,但是注意到wss websockets上有大量的延迟。在我们的许多带有https的游戏服务器上(这个问题似乎是随机发生在一些服务器上),wss上的延迟是几秒钟,这在ws上是前所未有的。

快速信息:我们的游戏服务器每秒发送10个更新包,给出在游戏中发生变化的信息。

我们通过自己的通配符证书(*.mope.io)为站点使用cloudflare (设置完整:严格)。我们所有的游戏服务器都有匹配的DNS记录,这些记录都属于这个证书(这样websockets可以在https上工作--我们连接到eg。wss://server1.mope.io:7020而不是ws://1.2.3.4:7020)。游戏服务器使用以下库用Java编写:https://github.com/TooTallNate/Java-WebSocket

对于websockets在wss/tls下表现如此缓慢的原因有什么想法吗?这种情况甚至发生在我是唯一一个连接到服务器的人时。(非常感谢任何帮助/指导:)

额外信息:我注意到在cloudflare缓存它之前,当连接到站点时,第一个https请求的时间是11到第一个字节,是什么原因呢!?

EN

回答 1

Stack Overflow用户

发布于 2019-05-15 08:37:23

我的朋友在他的Node.js wss游戏服务器上也有类似的问题,他怀疑这是DoS攻击。通过快速打开WSS连接,他成功地复制了服务器中的“冻结”状态。我不确定这是只影响到安全的websocket服务器,还是既不安全又安全。

WSUWS库都出现了问题。在websockets/ws库中,即使拒绝verifyClient()上的连接以防止它进入应用程序本身的连接处理逻辑(这可能是对延迟的合理解释)也会发生滞后,所以我想知道瓶颈是否位于节点底层的套接字内容中,需要处理安全的连接。

我们防止冻结的解决办法是设置带利率限制的iptable。用您的服务器端口替换1234。

代码语言:javascript
运行
复制
sudo iptables -I INPUT -p tcp --dport 1234 -m state --state NEW -m recent --set
sudo iptables -I INPUT -p tcp --dport 1234 -m state --state NEW -m recent --update --seconds 1 --hitcount 2 -j DROP

这将允许两个连接在第二个IP地址。如果有必要,还保存iptables,因为它在系统重新启动时重置。

https://serverfault.com/questions/296838/traffic-filtering-for-websockets

connections

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42865031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档