2012-04-05 12 views
7

Tengo problemas para obtener el socket io para enviar una respuesta al connect para el navegador android. He registrado los parámetros y están apareciendo en el lado del servidor, simplemente parece que el lado del cliente no se conecta correctamente. Inhabilité jsonp, pero escuché que Android vuelve a xhr de todos modos.android browser and socket io

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}); 
}); 

Esto funciona en todos los navegadores (incluso Safari móvil, móvil FF, Chrome Beta móvil). Tengo que actualizar el navegador de Android 4-5 veces para que finalmente se conecte. Por cierto, estoy usando js Streamline (_)

ACTUALIZACIÓN esto parece ocurrir en Wifi sólo

+0

se ha configurado el servidor? ¿Dónde te estás desplegando? – JakeWilson801

+2

cuando pones una recompensa corta tu viejo representante inmediatamente – UmNyobe

Respuesta

0

Por lo que vale, este sencillo ejemplo a continuación funciona en mi navegador Android. Háganos saber si hay algo específico que necesita, que no está cubierto por debajo de - importante: Cambiar el número IP y el puerto a lo que se adecue a su entorno:

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); 
+0

el problema que tengo es que tengo que actualizar el navegador Android, 4-5 veces para que realmente se conecte. Agregué la lógica 'conectar' arriba. Estoy conectado en la URL de mi servidor y en el puerto 80, por lo que no declaro el puerto en io.connect. – re1man

1

Tras la socket io website, parece que no está usándolo bien

intente cambiar socket.on('connect',function (data) {

a

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