Socket.io在桌面Safari和Chrome上工作,但不能移动
我使用socket.io来build立服务器和html5客户端之间的通信,一切工作正常在桌面上和Safari模拟器上的safari。 客户端无法build立连接,虽然当我试图从任何iOS甚至Android设备运行它。
使用networking检查器,我无法在我的ios7设备上输出控制台错误,但设法获得XHR下的一个项目尝试连接到服务器IP地址的资源列表,并在大约2到3分钟后失败(变为红色)
我的iOS设备是iOS 7.03(iPhone 4),我使用节点v0.10.21和socket.io v0.9.16我也使用IP地址连接,所以我不知道是否有相同的域名限制这适用
以下是客户的相关部分:
<script src="http://xx.xx.xx.xx:port/socket.io/socket.io.js"></script> var socket = io.connect("http://xx.xx.xx.xx:port"); socket.on('connect', function() { console.log("connected"); } socket.on('disconnect', function() { console.log("disconencted"); } socket.on('message', function(data) { console.log("rcved:"+ data*emphasized text*); }
服务器
var io = require('socket.io').listen(12321).set('log level', 0); var ConnectionHandler = require('./handler.js'); io.sockets.on('connection', function (socket) { new ConnectionHandler(socket); });
也许我还指出,当我启用服务器端的完整日志logging,没有连接尝试连接是由移动设备,只是桌面设备和iOS模拟器。
任何build议修复或如何寻求解决这个问题表示赞赏
原来是一个防火墙问题:|
台式电脑在VPN上,手机不是这个问题的解释
我觉得很愚蠢,但我会把它留在这里,以防止他们检查这个相同的问题
- socket.io-java-client和node.js – 握手时出错
- Cordova CLI:Ant构build不安装
- NodeJS:callback不是一个函数 – 电子邮件validation
- 如何将移动启动的video通话与基于networking的video通话相集成?
- 在Appcelerator Studio中,Liveview不能在Alloy Projects(在Classic Projects中正常运行)中工作
- 在Android应用和Chrome客户端之间build立DataChannel
- build立离子应用程序时找不到模块'shelljs'
- npm运行android反应本地给予build立错误
- 通过NodeJS中的USB连接Android / iPhone设备