繁体   English   中英

SailsJS,套接字IO 101(交换协议)永远待定

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM