我正在向另一台主机上的API服务器发送websocket连接:
new WebSocket("ws://localhost:3000")
我的前端托管在localhost:8080
。
在我的API的websocket连接处理程序中,我能够在session
(使用Sinatra' s enable :sessions
)设置密钥,但每次刷新html页面,数据丢失。
对于前端与服务器共享同一主机的会话是否有一些要求?或者有什么方法可以解决这个问题?顺便说一下,前端正在Webpack服务器(Node)上运行。
我还尝试为API的根路由http://localhost:3000
添加cross_origin允许值,然后在客户端中执行此操作(此示例在coffeescript中):
$.get "http://localhost:3000", ->
new Websocket("ws://localhost:3000")
我的想法是,可能需要对会话进行初始化"超过http://
代替ws://
,但它也无效。该会话也不适用于$.get "http://localhost:3000"
请求。刷新页面显示会话每次都清除。
答案 0 :(得分:1)
正如我们在评论中讨论的那样,您可能在浏览器中遇到第三方会话Cookie问题。
这是一个可以用来解决它的方案。