什么cometd配置用于减少402错误发生?

时间:2017-06-28 20:49:07

标签: java networking jboss cometd

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

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

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

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

哪些cometd配置参数可以更新以改善这一点? maxinterval,timeout,multiSessionInverval等?

谢谢!

1 个答案:

答案 0 :(得分:1)

" 402未知客户"错误是由于服务器未从客户端看到/meta/connect心跳消息并使服务器上的对应会话失效。这通常是由于网络问题造成的。

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

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

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