【问题标题】:Mercure & Event Source Polyfill :Error : No activity within 45000 milliseconds. 2 chars received. ReconnectingMercure & Event Source Polyfill:错误:45000 毫秒内没有活动。收到 2 个字符。重新连接
【发布时间】:2021-03-23 17:12:22
【问题描述】:

我有一个 symfony / api PLatform 服务器。我添加了 Mercure 以将 SSE 发送到 API 客户端。在我的客户端,我使用事件源 Polyfill 进行订阅。

我设法收到消息,但出现以下错误:

错误:45000 毫秒内没有活动。收到 2 个字符。正在重新连接。

我读到需要心跳来保持连接并避免此错误。

然后我将心跳指令添加到集线器命令行:

SERVER_NAME=:3000 MERCURE_PUBLISHER_JWT_KEY='toto' MERCURE_SUBSCRIBER_JWT_KEY=$(cat ../config/jwt/public.pem) MERCURE_SUBSCRIBER_JWT_ALG=RS256 HEARTBEAT_INTERVAL=15s READ_TIMEOUT=2m ./mercure run -config Caddyfile.dev

但没有任何改变。我仍然有这个错误。

我错过了什么?

感谢您的帮助

【问题讨论】:

  • 我有同样的错误,如果你发现问题写下答案

标签: symfony heartbeat mercure


【解决方案1】:

您需要在Caddyfile 中添加以下配置 => heartbeat 15s

route {
    encode zstd gzip

    mercure {
        # Transport to use (default to Bolt)
        transport_url {$MERCURE_TRANSPORT_URL:bolt://mercure.db}
        # Publisher JWT key
        publisher_jwt {env.MERCURE_PUBLISHER_JWT_KEY} {env.MERCURE_PUBLISHER_JWT_ALG}
        # Subscriber JWT key
        subscriber_jwt {env.MERCURE_SUBSCRIBER_JWT_KEY} {env.MERCURE_SUBSCRIBER_JWT_ALG}
        
        heartbeat 15s
        
        # Extra directives
        {$MERCURE_EXTRA_DIRECTIVES}
    }

    respond /healthz 200

    respond "Not Found" 404
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-28
    • 2016-12-27
    • 2019-04-02
    • 2014-11-02
    • 2018-09-01
    • 2013-04-27
    • 2016-11-06
    • 2016-10-19
    相关资源
    最近更新 更多