android浏览器和socket io

我无法获得套接字IO发送连接的Android浏览器的响应。 我logging的参数,他们出现在服务器端,这似乎是客户端没有正确连接。 我禁用了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,移动铬testing版)。 我必须刷新Android浏览器4-5次才能最终连接。 顺便说一句,即时通讯使用stream线js(_)

更新这似乎只发生在wifi上

目前有限的select:

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 = "<!doctype html>\ <html>\ <head>\ <script src=/socket.io/socket.io.js></script>\ <script>\ var socket = io.connect('http://10.0.1.29:3000');\ function send() {\ socket.emit('foo', 'Ben', function(data) {\ alert(data);\ });\ }\ </script>\ </head>\ <body>\ <button onclick='send();'>Send</button>\ </html>"; 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);