Ben*_*oft 8 javascript android 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: '+_);});
});
Run Code Online (Sandbox Code Playgroud)
客户:
var s=new WebSocket('ws://mysite.com:8004');
//android default browser dies here <---------------?
s.onopen=function(){
$('body').css({'background':'green'});
s.send('hi');
};
Run Code Online (Sandbox Code Playgroud)
我不得不问为什么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);
}
Run Code Online (Sandbox Code Playgroud)
这给了我一个控制台日志:
wtf!? function WebSocket(){[native code]}
Run Code Online (Sandbox Code Playgroud)
gzo*_*ost 15
事实上,Android股票浏览器并不支持WebSocket.
显然已经完成了一些工作以准备添加支持,因此浏览器中的API就在那里,即您可以创建WebSocket对象.只是这实际上并没有在幕后做任何事情.
这导致一个简单的功能支持检查,它只是尝试创建套接字对象,显示WebSocket支持.检查readyState以获取已创建的WebSocket对象,您将看到它永远不会从"0"更改.
从Android 4.4开始,不再有股票浏览器了.Web视图组件已切换到Android版Chrome - 这确实支持WebSocket.
归档时间: |
|
查看次数: |
10457 次 |
最近记录: |