android浏览器和socket io

我无法获得socket io在Android浏览器的连接上发送响应。 我记录了参数,它们出现在服务器端,看起来客户端没有正确连接。 我禁用了jsonp,但我听说android无论如何都要回到xhr。

socket.on('connect',function (data) { socket.emit('setNickAndRoom', {nick: nick}, function(response){ //response. nothing :(. }); }); client.on("setNickAndRoom", function(nick, fn,_){ //etc etc fn({msg :nick}); }); 

这适用于所有浏览器(甚至是移动Safari,移动FF,移动Chrome测试版)。 我必须刷新android浏览器4-5次才能最终连接。 顺便说一句,即时通讯使用流线型js(_)

更新这似乎只发生在wifi上

目前有限的选择:

http://code.google.com/p/weberknecht/

https://github.com/TooTallNate/Java-WebSocket

https://github.com/Gottox/socket.io-java-client

就WebSockets来说听起来是对的。 Socket.IO的特定线路协议似乎尚未在Java中实现,因此您可能必须自己处理。

在socket io网站之后 ,似乎你没有正确使用它。

尝试更改socket.on('connect',function (data) {

socket.on('connection',function (data) {

对于它的价值,下面的这个简单示例适用于我的Android浏览器。 如果您需要任何具体内容,请告知我们,以下内容未涵盖 – 重要:将IP编号和端口更改为适合您环境的内容:

 var express = require('express'), socketio = require('socket.io'), app = express.createServer(), io = socketio.listen(app); var index = "\ \ \ \ \ \ \ \ "; app.get('/', function(req, res) { res.send(index); }); io.sockets.on('connection', function(socket) { socket.on('foo', function(name, f) { f('Hello ' + name); }); }); app.listen(3000);