2012-04-05 18 views
7

アンドロイドブラウザの接続時にソケットioから応答を送信できません。 私はパラメータを記録しました、そして、彼らはサーバ側に現れています、ちょうどクライアント側が正しく接続されていないようです。私は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、モバイルクロムベータ版)でも機能します。私はそれを最終的に接続するためにアンドロイドブラウザを4-5回リフレッシュする必要があります。ところで、これは、無線LAN上で起こるようです流線JS(_)

UPDATEを使用してイムだけ

この時点で
+0

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

を変更してみてください?どこに展開していますか? – JakeWilson801

+2

あなたはすぐにあなたの古い担当者を切る賞金を置くとき – UmNyobe

答えて

0

以下の簡単な例は、私のAndroidブラウザで動作します。それが下にカバーされていない、あなたが必要とする特定の何かがあります場合はお知らせ - 重要:ご使用の環境収まる何にIP番号とポートを変更しsocket io website

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

私は持っている問題は、私はアンドロイドブラウザをリフレッシュする必要があります、実際に接続するために4-5回。私は上記の '接続'ロジックを追加しました。私は自分のサーバーのURLとポート80に接続しているので、io.connectにポートを宣言しないでください。 – re1man

1

を、あなたではないようですそれを使用して右。

を使用すると、サーバを設定でした

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