使用什么 cometd 配置来减少 402 错误的发生?

What cometd configurations to use to reduce 402 error occurrences?

我们在使用 CometD 长轮询的 JBoss 容器上实现了 Java servlet 运行。这已在一些组织中实施,没有任何问题,但在最近的实施中,出现了似乎与该组织的网络设置有关的功能问题。

具体来说,大约 5% 的时间,连接请求返回 402 错误:

{"id":"39","error":"402::Unknown client","successful":false,"advice":{"interval":0,"reconnect":"handshake"},"channel":"/meta/connect"}

让这个组织解决网络性能问题是一项重大挑战,因此我们正在寻找一种方法来调整实施以减少这些问题。

可以更新哪些 cometd 配置参数来改善这一点? 最大间隔、超时、multiSessionInverval 等?

谢谢!

“402 未知客户端”错误是由于服务器没有看到来自客户端的 /meta/connect 心跳消息并使服务器上的相应会话过期。这通常是由于网络问题。

客户端网络恢复后,客户端发送 /meta/connect 心跳消息,但服务器没有对应的会话,因此出现 402。

控制服务器端会话过期的参数是 maxInterval,记录在此处:https://docs.cometd.org/current/reference/#_java_server

默认为 10 秒。如果增加它,则意味着您将在服务器内存会话中保留更长的时间,因此您需要考虑到这一点。