[英]SailsJS, Socket IO 101 (Switching Protocols) pending forever
我一直在使用SailsJS开发应用程序。 直到几个小时前,当我没有从socket.get()
获得响应时,一切都工作正常。 我在chrome控制台中检查了“网络”标签,发现上一个请求仍在等待处理中。
要求的Uri:
ws://localhost:1337/socket.io/1/websocket/FBcw-Q4H3PLFXcIlb0GB
状态码:
101 Switching Protocols
我到处搜索,有人说这是由于防火墙造成的。 所以我禁用了它们,但这无济于事。 其他一些人建议默认为xhr轮询,所以我这样做了,但同样的事情发生了,请求
http://localhost:1337/socket.io/1/xhr-polling/4_gAWYQJtKdXhDFEcxHe?t=1395536371612
永远待命。
为了回应评论,这是request事件:
socket.get('/session/create', {
username: username,
password: password
}, function (response) {
console.log(response) // null
});
响应从不返回,并且在回调中始终为null。 我什至尝试立即发送响应,但也没有返回。 下面的例子:
// Session controller
module.exports = {
create: function (req, res) {
return res.json({foo: 'bar'}, 200);
}
}
抱歉,我已经做了一些摆弄,发现了问题(我可能是一个愚蠢的错误)。
我启用了快捷方式URL,这在SailsJS中意味着对/ foo / bar的请求将映射到FooController.bar
在我添加如下例所示的通配符路由之前,此方法运行良好:
get /:foo/:bar
这似乎已破坏了请求。 由于我正在向/session/create
发送请求,并且依赖快捷方式路由而不指定显式路由,因此它由:foo/:bar
路由解释。
经验教训:禁用快捷方式URL并使用正确的路由。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.