java - CometD Bayeux Java 客户端 - 订阅者未收到事件
问题描述
我面临通过长轮询传输连接服务器的 CometD 客户端应用程序的问题。当 Bayeux 客户端和频道显示为 CONNECTED 并且订阅者停止接收事件时,存在未知场景。同时我们看到事件正在到达扩展(ReplayExtension)。
platformevent.pull.listener.SFDCPlatformEventListenerV2,EnhancedBayeuxClient@762f062b[281fubf9u3oc3xy1mhi0kpswuiid][SessionState@50e82092[CONNECTED]], dump:EnhancedBayeuxClient@762f062b[281fubf9u3oc3xy1mhi0kpswuiid][SessionState@50e82092[CONNECTED]]
+> AttributesMap@496367f2
| +> null
+> extensions size=1
| +> platformevent.pull.extension.ReplayExtension@6101e9c5
+> channels size=8
+> /event/ae_spark__TEL_Bulk_Change__e
| +> listeners size=0
| +> subscribers size=1
| +> subscriber.PEListenerKafkaPublisher@2bf94401
+> /meta/*
| +> listeners size=0
| +> subscribers size=0
+> /meta/**
| +> listeners size=0
| +> subscribers size=0
+> /meta/connect
| +> listeners size=1
| | +> platformevent.pull.listener.PullAuthFailureListener@7fec5ba4
| +> subscribers size=0
+> /meta/disconnect
| +> listeners size=0
| +> subscribers size=0
+> /meta/handshake
| +> listeners size=0
| +> subscribers size=0
+> /meta/subscribe
| +> listeners size=1
| | +> platformevent.pull.listener.EnhancedBayeuxClient$$Lambda$1240/918157032@306ad64
| +> subscribers size=0
+> /meta/unsubscribe
+> listeners size=1
| +> platformevent.pull.listener.EnhancedBayeuxClient$$Lambda$1239/617777499@4a59da25
+> subscribers size=0
key: +- bean, += managed, +~ unmanaged, +? auto, +: iterable, +] array, +@ map, +> undefined,
Extensions:[platformevent.pull.extension.ReplayExtension@6101e9c5]
HttpClient: HttpClient@5b519f20{STARTED}
2021-03-27 21:17:08.734 INFO 67 --- [qtp561448546-42] c.a.s.p.p.p.l.EnhancedBayeuxClient : Recived lstn:{clientId=281fubf9u3oc3xy1mhi0kpswuiid, channel=/meta/subscribe, id=1077, subscription=/event/ae_spark__TEL_Bulk_Change__e, successful=true}
我在 PullAuthFailureListener 中有一个逻辑,它在消息不成功时重新启动 Bayeux 客户端。重启步骤为:
- 取消订阅所有频道。
- 断开 Bayeux 客户端。
- 再次握手
- 注册频道/订阅者 (/event/ae_spark__TEL_Bulk_Change__e)
有什么建议可能会阻止事件到达订阅者,或者有什么建议可以进一步解决这个问题?
解决方案
推荐阅读
- swift - 从 SVG HTML 字符串创建 UIImage
- powershell - PowershellCore - 无一例外地获取非 20 倍响应的内容
- javascript - 来自 Photoshop 的通道图像数据中的 Zip 压缩
- flutter - Flutter GraphQL FormatException, FormatException: Unexpected character (at character 1
- c# - C# 将一个逗号分隔的字符串转置到另一个上
- gatsby - 如何自定义图片的publicURL
- c# - 如何在 Visual Studio 中将 WInform 连接到 Webform
- c# - 如何修改另一个 ASPX 文件
- javascript - 如何在 R 中使用传单制作的地图上添加下载按钮?
- wordpress - 我该如何使用
- 和wp_nav_menus 中的类?