Android Stock Browser中是否支持WebSocket?

使用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默认浏览器不能打开连接?

我访问www.websocket.org/echo.html在默认的Android浏览器,它说这个浏览器支持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]} 

Solutions Collecting From Web of "Android Stock Browser中是否支持WebSocket?"

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

一些工作显然是为了添加支持做准备的,所以浏览器中的API就在那里,也就是说你可以创build一个WebSocket对象。 只是这实际上并没有在幕后做任何事情。

这导致了一个简单的function支持检查,它只是试图创build套接字对象,显示WebSocket支持。 检查一个已创build的WebSocket对象的readyState,而您将看到这从不会从“0”更改。

从Android 4.4开始,没有股票浏览器了。 Web视图组件已经切换到Android的Chrome浏览器 – 这确实支持WebSocket。