当使用带有 aiohttp.web 的 websockets 并使用 Cloudflare 的代理时,websocket 连接在 2~ 分钟后终止并显示 1006

When using websockets with aiohttp.web and using Cloudflare's proxy, the websocket connection dies 2~ minutes afterwards with 1006

如标​​题所述..

更详细一点的我的用法说明:

我使用 Caddy 作为 aiohttp 的反向代理。然后是 Caddy 前面的 Cloudflare。 这与 Caddy 无关,因为使用灰云 DNS 条目(没有来自 Cloudfare 的代理)可以正常工作。

但是每当流量通过 Cloudflare 时,websocket 连接就会在 2 分钟后终止,并显示 1006 关闭代码。没有其他消息附加到关闭框架。

我可以使用 aiohttp 文档中的示例 websocket 代码片段重现它。 (https://docs.aiohttp.org/en/stable/web_quickstart.html#websockets)

你好 Whosebug 用户 Tarek。请允许我第一个欢迎您来到这个平台!

虽然没有很好的记录,但一些消息来源表明,如果 WS 会话空闲超过 100 秒,Cloudflare 将断开连接,除非您是企业客户——在这种情况下,您可以在Cloudflare 控制面板。

如果您不是企业客户,则需要发送某种类型的保持活动状态以保持套接字打开。

希望对您有所帮助!