WebSocket对android的支持不太好啊,目前各个浏览器的支持情况: http://caniuse.com/websockets 。Android的4.2+的webkit才支持貌似。
这篇文章的里面推荐用websocket-android-phonegap方案: http://blog.qhm123.com/2012/05/20/android-websocket-chat.html
可是我clone后一用,发现构造函数还需要webview,我不想搞个webview在我的app里面,我就像纯后台的websoket协议支持。
后来看到了http://autobahn.ws/ ,但是我github上的android版本fork的人不多啊。
目前打算去试试另外一个koush/AndroidAsync 了,貌似fork的人还比较多一些。
纠结啊,有经验的说说,推荐一个啊。
另外,后端用的是nodejs+restify,restify支持socket.io,而socketio又是支持websocket的,绕个大圈,所以也顺道问问,这个方案是否靠谱,有坑否?
@lonso ,你们公司的AndroidAysnc我推测使用的Socket.io方式连接的,可是Socket.io升级到1.0后,AndroidAsync貌似就不支持Socektio方式了:https://github.com/koush/AndroidAsync/issues/202
koush commented 13 days ago
Use another library, or reimplement with the new protocol. Unfortunately I do not have the time to do so...
koush就是此项目的作者,他说木有时间,木有时间实现!!!唉
貌似原生的WebSocket确实有不少问题,怪不得一堆人写Webcoket的增强客户端呢?我看了好几个开源项目,大家都不用原生的WebSocket调用自己实现的号称支持WebSocket的服务器,而都推荐用自己的客户端,虽然没有去细看代码,看来真的不太靠谱,这个标准的html5的WebSocket API: http://blog.caplin.com/2010/03/02/why-we-dont-need-html5-websocket/
算了,忍了,还是去找个靠谱的Socket.io的Android库吧,我其实本意是为了要个好用的WebSocket的Android库,可是@lonso 推荐的AndroidAsync只支持到socket.io的0.9,而且websocket方式也是超时(自己测试的结果)。
罢了罢了,重新去找个Android的Socket.IO的客户端了,谁让Socket.io比较成熟呢。
有同样痛楚的同学们欢迎跟帖呻吟