7

Androidブラウザーの接続時にソケットioが応答を送信するのに問題があります。パラメータをログに記録したところ、サーバー側に表示されています。クライアント側が正しく接続していないようです。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});
});

これは、すべてのブラウザー (モバイル サファリ、モバイル FF、モバイル クロム ベータ版も含む) で動作します。最終的に接続するには、Androidブラウザーを4〜5回更新する必要があります。ところで、ストリームライン js を使用しています (_)

更新これはwifiでのみ発生するようです

4

3 に答える 3

3

現時点での限られたオプション:

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

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

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

WebSocket に関する限り、正しく聞こえます。Socket.IO 固有のワイヤ プロトコルは、Java ではまだ実装されていないようです。そのため、自分で対処する必要があるかもしれません。

于 2012-04-18T07:06:12.113 に答える
1

socket io websiteに従うと、正しく使用していないようです。

変更してみるsocket.on('connect',function (data) {

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

于 2012-04-24T05:39:19.090 に答える
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);
于 2012-04-18T10:54:17.900 に答える