XMPP:BOSH 客户端会话在连接到 openfire 时随机关闭

XMPP:BOSH client session getting closed randomly while connecting to openfire

一段时间后我收到这条消息。

 org.jivesoftware.openfire.http.HttpSession - Request 3436024236568502 > 3436024236568501, ending session.

基本上我发送大约 1,00,000 messages/queue/hour 每个 400 字节。我看到只有这个会话被终止了。

此消息说明什么,可能的解决方案是什么?

你运行进入以下约束

else if (rid > (lastRequestID + maxRequests)) {
    Log.warn("Request " + rid + " > " + (lastRequestID + maxRequests) + ", ending session.");
        throw new HttpBindException("Unexpected RID error.",
                BoshBindingError.itemNotFound);
}

Source

这意味着有许多未完成的 BOSH 请求。 Openfire defaults to 2。您可以尝试修改 Openfire 设置 xmpp.httpbind.client.requests.max,但我不建议这样做。相反,请确保您的 BOSH 客户端仅在没有超过 1 个未完成请求时才发送新请求。