我有一个symfony/api PLatform服务器。我添加了美居向API客户发送SSE。在我的客户端,我使用事件源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
但一切都没有改变。我仍然有这个错误。
我错过了什么?
谢谢你的帮助
您需要在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
}