[问题] 当使用发布数据模式和 NATS/Google pub/sub 异步消费者时, Centrifugo 会跳过消息
我试图执行以下操作:- **设置**:- centrifugo html 客户端 centrifugo 服务器作为 Docker 容器版本 6.3.1 运行 外部中介商,如 NATS/Google pub/sub,用于异步消费者 **流程**:- 向外部中介商(如 Google pub/sub 主题或 NATs Jetstream)发送消息,使用本地发布命令(如 nats pub <subject> '{"method":"publish","payload":{"channel":"testchannel1","data":{"hello":"world"}}}') **以上组件均已集成,我可以在日志中看到消费者和客户端也订阅了该通道。 Centrifugo 还确认它尝试读取,但始终显示以下内容:- centrifugo | {"level":"debug","channel":"testchannel1","client":"2c093829-72c4-4435-9fa2-1ca4c35ed649","user":"123722","time":"2025-10-07T18:10:07Z","message":"client subscribed to channel"} centrifugo | {"level":"debug","consumer":"natsasync1","subject":"centrifugo.payments","time":"2025-10-07T18:10:47Z","message":"received message from subject"} centrifugo | {"level":"info","consumer":"natsasync1","time":"2025-10-07T18:10:47Z","message":"no channels found, skipping message"} 为什么它不起作用,以及如何解决相同问题。 我正在使用发布数据模式启用的消费者运行。 "publication_data_mode": { "enabled": true } { "name": "natsasync1", "type": "nats_jetstream", "enabled": true, "nats_jetstream": { "url": "nats://host.Docker.internal:4222", "stream_name": "centrifugo", "subjects": ["centrifugo.payments"], "durable_consumer_name": "centrifugo_payments_consumer", "deliver_policy": "new", "max_ack_pending": 100, "publication_data_mode": { "enabled": true } } } 在分析中,此功能在 6.3.1 版本中不受支持,将在 6.4 版或更高版本中提供。 是否正确?如果是,为什么没有在 https://centrifugal.dev/docs/server/consumers 中提到? ... **版本** Centrifugo 版本是 6.3.1 客户端库是 centrifuge-<???> 版本 <???> 操作系统是 macOS **重现步骤** 如何触发此错误? - 运行 centrifugo 6.0 版本 - 运行具有 jetstream 的 nats 版本,或可以使用 Google pub/sub 作为异步消费者的外部中介商。 - 通过其本地命令或 API 调用等向外部中介商发送消息 ... ... **预期行为** 您期望的输出或行为是什么? centrifugo 应能从外部中介商读取发布的消息,并将其推送到通道 -> UI websocket。 ... ... **代码段** 最小可行的代码段可能很有用。 "您的代码在这里。"
内容来源: centrifugal/centrifugo