套接字.Emit在移动chrome中不工作(但它在隐身模式下工作)
socket.emit is not working in mobile chrome (but it works in incognito mode)
我有一个应用程序使用套接字。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');
});
});
EDIT2:
我在客户端手动指定了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
一些移动网络通过80端口代理请求,这会破坏web套接字。这并不能解释为什么它可以在其他浏览器或隐身中工作,但是您可以通过将服务器和客户端移动到不同的端口来测试这个假设,例如。81.
相关文章:
- 数据属性仅在切换设备模式下工作
- 为什么我的JavaScript在Safari上的严格模式下不能正常工作
- 更改不在引导模式窗口中工作的月份和年份
- 推特Boostrap模式窗口-可拖动不工作
- 如何使引导模式正常工作
- 与未在发布模式下工作的子目录和区域绑定
- 为什么除了html5输入模式属性之外,这个简单的regex在任何地方都能工作
- 为什么我的UI应用程序嵌套在引导模式中时无法工作
- 代码在调试模式下工作
- 选中的单选按钮在jQuery模式对话框中不能正常工作
- bootstrap日期选择器轨道无法通过带有bootstrap模式的simple_form工作
- 我的滑块无法在自动模式下工作
- 事件发射器模式如何在Node,sockets.io中工作
- js不能在bs3ajax模式中工作
- 如何使Asp.net网站同时在IE 11(非可比模式)和IE 8中工作
- Eonasdan日期时间选择器没有'不能在联机模式下工作
- jQuery每5个工作小时重置一次颜色模式
- AJAX 在调试模式下工作,但不是实时的
- 代码仅在调试器模式下工作,断点位于 Consol.log否则不起作用
- config.fullPage = true;在 ckEditor 内联模式下无法正常工作.如何实现这一点