握手后,cometd立即返回“402 :: Unknown Client”错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了握手后,cometd立即返回“402 :: Unknown Client”错误相关的知识,希望对你有一定的参考价值。

我有一个使用CometD Java构建的应用程序,它已部署到许多客户端托管实例并且工作正常。但是,在最近的客户端实现中,我们遇到了一个问题,即cometd长轮询请求在执行握手后立即返回“402 :: Unknown Client”错误。

因此浏览器尝试另一次握手,这是成功的,但是在下一次请求时它再次返回402 :: Unknown Client错误。等等,它重复这样。

我看不出这个客户端实现和之前的版本(相同的jboss / apache版本等)之间存在任何差异,所以我不知道为什么会发生这种情况。

感谢任何想法或建议。

谢谢。

答案

负载均衡器很可能不会将同一客户端粘贴到同一台服务器上,而且必须这样做。

最好的方法是坚持客户端IP地址,因为这将适用于HTTP和WebSocket传输;或者,你可以坚持使用CometD发送的BAYEUX_BROWSER cookie。

进一步的替代方案涉及创建HTTP会话并使用其cookie,但这排除了WebSocket传输(或者您必须有另一种机制)。

以上是关于握手后,cometd立即返回“402 :: Unknown Client”错误的主要内容,如果未能解决你的问题,请参考以下文章

握手后 Websocket 立即断开连接(鳄梨酱)

如何强制wireguard立即握手?

Cometd/bayeux 客户端 + Salesforce 流 API 问题

使用CometD技术实现web系统中的主动推送

提供多个端点的 Cometd 可能不会部署到同一路径 [/cometd]

那种扫描不能正确的判断windows系统的端口开放