我最近开始使用Socket.IO,直到今天再也没有遇到任何问题。我始终使用iOS客户端测试连接,但是我使用同一Wi-Fi网络(在我的房屋内部)连接到服务器。今天是我第一次尝试在户外连接(使用3G移动网络连接),但是Socket.IO完全不响应。这是我的代码:
服务器:
var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);
http.listen(4000, '0.0.0.0', function(){
console.log('Listening on *:4000');
});
客户:
var socketManager:SocketManager = SocketManager(socketURL: URL(string: "http://myIpAddress:4000")!)
self.socketManager.defaultSocket.on(clientEvent: .connect) { (data, ack) in
// Do stuff
})
self.socketManager.defaultSocket.connect()
因此,就像我说的一样,相同的Wi-Fi连接可以正常工作,不同的连接无法响应。我在客户端检查了日志,日志没有超过Handshaking...
。我关闭了Macbook的防火墙,假设那可能是阻止客户端连接的原因,但是不幸的是,这也没有用。有人对这个有经验么?如果是这样,此问题的最常见原因是什么?
我对使用Socket.IO还是很陌生,所以如果这个问题听起来很荒谬,我感到很抱歉。我有一种感觉,就是我可能错过了服务器端代码中一些非常基本和简单的内容,但是我不知道在哪里看。