微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

node.js – 端口8080或80上的移动网络中的WebSocket连接失败

在我的Web应用程序中,我使用Node.js和Socket.io.

当我测试本地或我的wifi网络中的应用程序一切都很好但是因为我切换到移动数据我得到连接错误

WebSocket connection to
‘ws://url/socket.io/1/websocket/’
Failed: Error during WebSocket handshake: Unexpected response code:
502

似乎我的移动提供商正在阻止端口8080和80,但是使用nodejitsu似乎无法切换到另一个端口.

有人有一些经验如何处理移动网络,node.js和socket.io?

编辑:
作为主持人,我尝试了免费订阅Heroku和免费订阅Nodejitsu.

在移动设备上,我使用移动设备和wifi检查了http://websocketstest.com/上的端口.在移动设备上,测试失败,端口80和8080.
我想也许我可以将端口更改为443,但即使我将server.listen()设置为端口443,nodejitsu似乎也会侦听端口80.

我认为WebSockets可能是通过另一个端口实现的,但我不知道如何更改端口或者为什么nodejitsu例如只是在监听端口80.

解决方法

HTTP 502表示“Bad Gateway”,通常是客户端和服务器之间路径上的反向代理的标志.

如果你确定这不是因为你自己的设置,你应该尝试禁用socket.io的websocket(和flashsocket)传输:

var io = require('socket.io').listen(...);

io.set('transports',[ 'xhr-polling','jsonp-polling','htmlfile' ]);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐