我有一个使用CometD Java构建的应用程序,该应用程序已部署到许多客户端托管实例,并且运行良好。但是,在最近的客户端实现中,我们遇到一个问题,即彗星长轮询请求在执行握手后立即返回“ 402 :: Unknown Client”错误。
因此,浏览器尝试了另一次握手,该握手已成功,但是随后再次在下一个请求中返回402 :: Unknown Client错误。如此重复,如此。
我看不到此客户端实现与以前的客户端实现(相同的jboss / apache版本,等等)之间的任何区别,所以我对发生这种情况的原因感到困惑。
赞赏任何想法或建议。
谢谢。
答案 0 :(得分:0)
负载均衡器很可能没有将同一客户端粘贴到同一服务器,而必须这样做。
最好的方法是坚持客户端IP地址,因为这对HTTP和WebSocket传输都适用;或者,您可以粘贴CometD发送的BAYEUX_BROWSER
Cookie。
其他选择包括创建HTTP会话并使用其cookie,但这会排除WebSocket传输(或者您必须具有其他机制)。