如何在sails.js 中的SocketIO 握手期间修复“此套接字没有可用的有效会话”?
Posted
技术标签:
【中文标题】如何在sails.js 中的SocketIO 握手期间修复“此套接字没有可用的有效会话”?【英文标题】:How do I fix 'No valid session available from this socket' during SocketIO handshaking in sails.js? 【发布时间】:2014-04-29 22:51:32 【问题描述】:我正在使用sails.js 开发ios 应用程序的API,并使用websockets 进行实时通信。问题是我无法让套接字 io 握手工作。
“此套接字没有可用的有效会话”错误显示在控制台中。当我用谷歌搜索了一下时,我知道我需要设置一个有效的 cookie。由于我的客户端不是基于浏览器的 javascript,我无法设置任何 cookie。
我什至在config/sockets.js
中设置了authorization: false
有什么解决办法吗?还是选择 Sails JS 来完成这项任务是一个错误?
顺便说一句,这些是我遇到这个问题的一些链接:
https://github.com/balderdashy/sails/issues/1062 https://github.com/balderdashy/sails/issues/995 https://github.com/balderdashy/sails/issues/1003
【问题讨论】:
您的应用需要会话支持吗?如果没有,您可以忽略此错误。 【参考方案1】:两种解决方案
由于我的客户端不是基于浏览器的 Javascript,我无法设置任何 cookie。
你当然可以“设置一个cookie”,你只需要手动设置:
拦截Set-Cookie
标头
解析它以检索sails.sid
稍后,当您发生请求时:
将检索到的sails.sid
传递给您请求的Cookie
标头
您甚至可以找到为您制作这个的 library。
只需通过 the official client library 专门与sails 服务器互动,它会为您处理所有这些逻辑。 (使用辅助方法通过它的套接字发出“类似 REST”的请求,不要在外面发出真正的 http 请求)
【讨论】:
以上是关于如何在sails.js 中的SocketIO 握手期间修复“此套接字没有可用的有效会话”?的主要内容,如果未能解决你的问题,请参考以下文章