2012-04-05 2 views
7

У меня возникли проблемы с получением сокета io для отправки ответа на соединение для браузера Android. Я зарегистрировал параметры, и они появляются на стороне сервера, похоже, что клиентская сторона неправильно подключена. Я отключил jsonp, но я слышал, что андроид все равно возвращается к xhr.Андроид браузер и сокет 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}); 
}); 

Это работает в каждом браузере (даже мобильном сафари, мобильном FF, мобильном хромовом бета-версии). Я должен обновить браузер Android 4-5 раз, чтобы он наконец подключился. Кстати, им с помощью Streamline JS (_)

UPDATE Это, кажется, происходит на WiFi только

+0

вы настроить сервер? Где вы развертываете? – JakeWilson801

+2

, когда вы кладете щедрость, вырезали свой старый rep сразу – UmNyobe

ответ

3

Ограниченные возможности в это время:

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

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

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

звук правый насколько насколько возможно WebSockets идет. Специфический проводной протокол Socket.IO, похоже, еще не реализован на Java, поэтому вам, возможно, придется самому справиться с этим.

0

Для чего это стоит, этот простой пример ниже работает в моем браузере 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); 
+0

проблема, с которой я сталкиваюсь, заключается в том, что я должен обновить браузер Android, 4-5 раз для его фактического подключения. Я добавил логику «connect» выше. Я подключаюсь к своему серверному URL-адресу и порту 80, поэтому я не объявляю порт в io.connect. – re1man

1

После socket io website, вы, кажется, не используя его правильно.

Попробуйте изменить socket.on('connect',function (data) {

в

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

Смежные вопросы