Android Stock Browser是否支持WebSocket?

 傅笑寒 发布于 2023-02-12 19:59

使用https://github.com/einaros/ws

服务器:

var WebSocketServer=require('ws').Server,wss=new WebSocketServer({port:8004});

wss.on('connection',function(s) {
    s.on('message',function(_){console.log('received: '+_);});
});

客户:

var s=new WebSocket('ws://mysite.com:8004');
//android default browser dies here <---------------?       
s.onopen=function(){
    $('body').css({'background':'green'});
    s.send('hi');
    };

我不得不问为什么android默认浏览器没有打开连接?

我在默认的android浏览器上访问www.websocket.org/echo.html,它说这个浏览器支持websocket.那有什么问题?

这个简单的代码适用于iphone safari,windows chrome,android mobile chrome没问题.

在android默认浏览器上我也可以用console.dir(window.WebSocket); 它显示WebSocket对象与其他浏览器没有什么不同.

如果有人知道原因,请告诉我.

谢谢


UPDATE

if (!window.WebSocket && window.MozWebSocket) {
    window.WebSocket = window.MozWebSocket;
    alert('MozWebSocket');
}
else if (!window.WebSocket) {
    alert("WebSocket not supported by this browser");
}
else{
    alert('wtf!? '+window.WebSocket);
}

这给了我一个控制台日志:

wtf!? function WebSocket(){[native code]}

gzost.. 15

事实上,Android股票浏览器并不支持WebSocket.

显然已经完成了一些工作以准备添加支持,因此浏览器中的API就在那里,即您可以创建WebSocket对象.只是这实际上并没有在幕后做任何事情.

这导致一个简单的功能支持检查,它只是尝试创建套接字对象,显示WebSocket支持.检查readyState以获取已创建的WebSocket对象,您将看到它永远不会从"0"更改.

从Android 4.4开始,不再有股票浏览器了.Web视图组件已切换到Android版Chrome - 这确实支持WebSocket.

1 个回答
  • 事实上,Android股票浏览器并不支持WebSocket.

    显然已经完成了一些工作以准备添加支持,因此浏览器中的API就在那里,即您可以创建WebSocket对象.只是这实际上并没有在幕后做任何事情.

    这导致一个简单的功能支持检查,它只是尝试创建套接字对象,显示WebSocket支持.检查readyState以获取已创建的WebSocket对象,您将看到它永远不会从"0"更改.

    从Android 4.4开始,不再有股票浏览器了.Web视图组件已切换到Android版Chrome - 这确实支持WebSocket.

    2023-02-12 20:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有