2016-01-22 7 views
7

最新のSocket.iov1.4.3)のAck'sとEventsを正しく処理する方法に関するドキュメントは見つかりません。すべての既存の記事/質問は、古いバージョン、特にIOCallbackクラスを参照しています。しかし、そのクラスは最新バージョンには存在しません。Socket.ioのハンドルコールバックアンドロイドクライアントv1.4

私が今まで出て見つけることができたすべてがこれです:

mSocket.connect(); 

mSocket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { 
    @Override 
    public void call(Object... args) { 
     //What to do here 
    } 
}) 
  1. どのように私は(Object... args)を処理します:Socketイベントのためのコールバックを取得するには

    。ちょっとしたコード例が素晴らしいでしょう。

  2. 多数のイベントがあるようですが、私はそれを別々に処理する必要がありますか?または、接続に関して通知するために実装できるイベントの最小限のセットは何ですか?

個々emitイベントのためのコールバックを取得するには:

mSocket.emit("payload", jsObj.toString(), new Ack() { 
    @Override 
    public void call(Object... args) { 
     //TODO process ACK 
    } 
}); 
  1. を繰り返しますが、どのように私は(Object... args)を処理することが出来るのですか?

答えて

2

。私はついにそれを自分で考え出しました。私はEVENT_CONNECTリスナーのcall方法に(Object... args)を処理するにはどうすればよい

私はまだそれを理解していません。しかし、私は見ている。

私は

これらの三つの方法が十分であろう接続について通知するために実装できるイベントの良い最小セットは何ですか:

を接続します。接続に成功すると解雇。
connect_error:接続エラーが発生したときに発生します。
connect_timeout:接続タイムアウト時に発生します。

出典:Socket.io Docs

はどのように私はEMIT確認の上(Object... args)を処理することが出来るのですか?

だから私は、ドキュメントを掘りとthisがわかった。

サーバー(アプリを。JS)

var io = require('socket.io')(80); 
    io.on('connection', function (socket) { 
    socket.on('ferret', function (name, fn) { 
     fn('woot'); 
    }); 
    }); 

クライアント

socket.on('connect', function() { // TIP: you can avoid listening on `connect` and listen on events directly too! 
    socket.emit('ferret', 'tobi', function (data) { 
     console.log(data); // data will be 'woot' 
    }); 
    }); 

だから引数は、コールバックへのパラメータとして送らどんなサーバーになります。だから、これはあなたが上記のサーバーコードのJavaクライアントコードを記述する方法を次のとおりです。

public void call(Object... args) { 
    String response = (String)args[0]; //this will be woot 
} 

paramはまた、JSON、またはsocket.ioでsupported datatypesのいずれかになります

我々は文字列を送信しますorg.jsonパッケージを使用してJSONデータを処理することもできます。バイナリデータもサポートされています。

+0

いいえ、先に進んでください。 –

+1

@IntelliJAmiyaあなたは答えを改善することを歓迎します。 SO上で利用可能な 'socket.io'の助けはほとんどありません。 – ShahiM