【问题标题】:Erlang Cowboy, Server Side Event, eventsource close and reconnects about every 60 secondsErlang Cowboy,服务器端事件,事件源关闭并大约每 60 秒重新连接一次
【发布时间】:2020-09-05 17:09:57
【问题描述】:

我在本地 Debian 服务器上运行了牛仔示例事件源。代码见 --> https://github.com/ninenines/cowboy/tree/master/examples/eventsource

大约 60 秒后,总是会出现“事件源已关闭”,然后是“事件源已连接”消息。

我在win10最新的chrome浏览器上测试。

我看不出有什么原因,我想知道这是否内置在 SSE 标准中,连接会定期断开。

chrome 调试器显示以下错误消息: GEThttp://192.168.1.100:8080/eventsourcenet::ERR_INCOMPLETE_CHUNKED_ENCODING 200(OK)

有什么想法吗?

MPC

【问题讨论】:

    标签: erlang cowboy


    【解决方案1】:

    您很可能会遇到空闲超时。

    您可以在cowboy example 中使用以下sn-p 进行更改:

        {ok, _} = cowboy:start_clear(http, [{port, 8080}], #{
            idle_timeout => 15000,
            env => #{dispatch => Dispatch}
        }),
    

    您可以在cowboy doc 中获得有关 ProtocolOpts 的更多信息

    【讨论】:

    • 试过了,你的正确。这似乎与空闲时间有关。不知道为什么,因为事件源示例每秒都会向客户端发送数据。这表明这是一个客户端空闲时间?无论如何感谢您的帮助。
    • 文档指出 idle_timeout 是 Time in ms with no data received before Cowboy closes the connection. 因为在规范中它应该是 timeout(),我很确定你可以将它设置为 'infinity' 而不是 15000
    • @mpc(抱歉,之前的评论忘记提到你了,可能对你有用)
    猜你喜欢
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 2018-10-07
    • 2012-07-19
    • 2022-11-15
    • 2019-11-03
    相关资源
    最近更新 更多