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' ]);

相关文章

这篇文章主要介绍“基于nodejs的ssh2怎么实现自动化部署”的...
本文小编为大家详细介绍“nodejs怎么实现目录不存在自动创建...
这篇“如何把nodejs数据传到前端”文章的知识点大部分人都不...
本文小编为大家详细介绍“nodejs如何实现定时删除文件”,内...
这篇文章主要讲解了“nodejs安装模块卡住不动怎么解决”,文...
今天小编给大家分享一下如何检测nodejs有没有安装成功的相关...