UC浏览器不为websocket调用发送httponly cookie

UC浏览器不为websocket调用发送httponly cookie,websocket,httponly,uc-browser,Websocket,Httponly,Uc Browser,我使用WebSocket与服务器通信,以避免ajax轮询,因为服务请求最多需要3-4分钟。在服务器上,我需要会话信息来满足请求,但我在UC浏览器(Android、iphone)上遇到的问题是,它没有在websocket调用中发送会话cookie,因为它只是httponly。而所有其他浏览器发送。此外,我在谷歌上也找不到之前UC浏览器报告的任何此类问题。 另外,由于它不会发送会话cookie,我的服务器会认为这是一个新的调用,并创建新的会话,这会使当前用户注销。 有人能帮我一下吗,我做错了什么,还

我使用WebSocket与服务器通信,以避免ajax轮询,因为服务请求最多需要3-4分钟。在服务器上,我需要会话信息来满足请求,但我在UC浏览器(Android、iphone)上遇到的问题是,它没有在websocket调用中发送会话cookie,因为它只是httponly。而所有其他浏览器发送。此外,我在谷歌上也找不到之前UC浏览器报告的任何此类问题。 另外,由于它不会发送会话cookie,我的服务器会认为这是一个新的调用,并创建新的会话,这会使当前用户注销。
有人能帮我一下吗,我做错了什么,还是这是uc浏览器的问题。

浏览器应该发送cookies,包括
httponly
cookies,并带有启动webSocket连接的HTTP请求。所以,除非有一些浏览器配置选项来控制这一点,否则这听起来就像是一个浏览器错误。可能是UC错误。在这种情况下,我能想到的唯一解决方案是通过用户代理检测UC浏览器,并通过正常阻止http调用而不是websocket来满足其请求。有没有更好的方法来处理这种情况?可能会有一些奇怪的解决方法,例如在webSocket连接后,您将一个唯一的ID发送回客户端,然后客户端使用该唯一ID向服务器执行单个Ajax调用。仅http的cookie将随该Ajax调用一起发送(大概是这样的)您将拥有套接字的唯一ID,然后可以将cookie与webSocket连接相关联。由于这是一个应该在将来某个时候修复的bug,我不会进行浏览器测试,而是设计一个功能测试,这样如果bug修复了,您的代码将只使用修复的webSocket。您建议的方法的问题是,如果webSocket连接,当服务器在没有会话cookie的情况下将其视为新请求时,将创建一个新会话。