Socket.io正在使用桌面游戏机和铬,但不是移动

时间:2013-11-10 07:43:25

标签: android ios iphone node.js socket.io

我正在使用socket.io在服务器和html5客户端之间建立通信,一切都在iPhone模拟器上的桌面和Safari上运行良好。当我尝试从任何iOS甚至Android设备运行它时,客户端无法建立连接。

使用Web检查器,我无法在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);
});

我可能还会指出,当我在服务器端启用完整日志记录时,没有连接尝试从移动设备,只是桌面设备和iOS模拟器进行连接。

对修复或如何寻求解决此问题的任何建议表示赞赏

1 个答案:

答案 0 :(得分:1)

原来是防火墙问题:|

台式电脑在VPN上,而手机却没有 这解释了这个问题

我感到愚蠢,但我会把它留在这里,以防它帮助某人检查这个同样的问题