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

Java https websockets(wss)上的巨大延迟,java,ssl,cloudflare,latency,java-websocket,Java,Ssl,Cloudflare,Latency,Java Websocket,我正在开发一款名为mope.io的mmo浏览器游戏(该游戏位于live at)——我们最近添加了https支持,但发现wss websockets存在大量延迟。在我们的许多使用https的游戏服务器上(这个问题似乎随机发生在一些服务器上),wss上有几秒钟的延迟,这在ws上是前所未有的 快速信息:我们的游戏服务器每秒发送10个更新包,提供游戏中发生变化的信息 我们通过自己的通配符证书(*.mope.io)为我们的站点使用cloudflare(设置为Full:Strict)。我们所有的游戏服务器都

我正在开发一款名为mope.io的mmo浏览器游戏(该游戏位于live at)——我们最近添加了https支持,但发现wss websockets存在大量延迟。在我们的许多使用https的游戏服务器上(这个问题似乎随机发生在一些服务器上),wss上有几秒钟的延迟,这在ws上是前所未有的

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

我们通过自己的通配符证书(*.mope.io)为我们的站点使用cloudflare(设置为Full:Strict)。我们所有的游戏服务器都有符合此证书的DNS记录(因此WebSocket可以通过https工作-我们连接到eg。wss://server1.mope.io:7020 而不是ws://1.2.3.4:7020)。 游戏服务器是用Java编写的,使用以下库:

有没有关于WebSocket在wss/tls下运行如此之慢的原因的想法?甚至当我是唯一连接到服务器的人时,这种情况也会发生。非常感谢您的帮助/指导:)


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

我的朋友在他的Node.jswss游戏服务器上也有类似的问题,他怀疑这是DoS攻击。他通过快速打开WSS连接,仅用一台计算机就成功地重现了服务器中的“冻结”。我不确定这是否只影响安全的websocket服务器,还是同时影响不安全和安全的服务器

问题发生在WSUWS库上。 在websockets/ws库中,即使拒绝
verifyClient()
上的连接,也会出现延迟,以防止它进入应用程序自己的连接处理逻辑(这可能是延迟的合理解释)所以我想知道瓶颈可能在处理安全连接的套接字底层节点中的某个地方

我们防止冻结的解决方案是设置带速率限制的iptables。将1234替换为您的服务器端口

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地址每秒2个连接。如果需要,还可以保存iptables,因为它会在系统重新启动时重置


您是mope.io开发人员?您是否进行过网络嗅探以确保没有其他数据包充斥服务器?是的,这是clickstan,mope.io开发负责人,目前,不,我必须找到一个可复制的测试用例,然后调试它,找到库中发生大延迟的确切位置。您是否从未找到解决方案?(我注意到mope.io现在还不是https)。我的.io游戏也有同样的问题——我碰巧在使用Java和相同的WebSocket库,哈哈。我认为这可能是一个无法解决的问题,TLS并不是按照.io游戏的运行频率设计的。我的游戏有一个登录名,所以网站也被明确标记为不安全。。