我有一个使用 socket.io 的应用程序,socket.emit()
但不能在移动 chrome 上工作(在 Android 和 iOS 上)。我可以看到socket.emit()
正在浏览器中执行。但是我的服务器端 console.log 语句socket.on()
没有运行,所以我认为消息没有到达那里。我在控制台中也看不到任何错误。
不过有趣的是,在隐身模式下一切正常,在 Safari 等其他移动浏览器中也能正常工作。
任何解决方案或调试帮助都会有所帮助。
编辑:
客户端代码
$(document).ready(function(){
socket = io();
$(".check").on("submit", function(event){
event.preventDefault();
ga('send','event','evt','evt123');
socket.emit('checkRoom', { rId: "12345", pId: "johndoe"});
});
});
服务器端代码
io.on('connection', function(socket) {
console.log('a user connected');
socket.on('check',function(e){
console.log('Entered check');
socket.emit('check','server message');
});
});
编辑2:
socket.io-1.3.5.js
我在客户端手动指定了文件(而不是使用默认的/socket.io/socket.io.js
)并开始在控制台中看到这个错误:
WebSocket connection to 'ws://mydomain.com/socket.io/?EIO=3&transport=websocket&sid=wr8UpsT45lrWHtpMACJs' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT