Обрабатывать обратные вызовы в Socket.io android client v1.4

Я не могу найти какой-либо документ о том, как правильно обрабатывать Ack и события в последнем Socket.io ( v1.4.3 ). Все существующие статьи / вопрос относятся к более старым версиям, особенно к классу IOCallback . Но этот класс отсутствует в последней версии.

Все, что мне удалось выяснить до сих пор, это:

Чтобы получить обратные вызовы для событий Socket :

 mSocket.connect(); mSocket.on(Socket.EVENT_CONNECT, new Emitter.Listener() { @Override public void call(Object... args) { //What to do here } }) 
  1. Как обрабатывать (Object... args) . Хороший пример кода.
  2. Кажется, что более дюжины событий, я должен обрабатывать все это отдельно? Или что такое хороший минимальный набор событий, которые я могу реализовать, чтобы получать информацию о соединении?

Чтобы получить обратные вызовы для отдельных событий emit :

 mSocket.emit("payload", jsObj.toString(), new Ack() { @Override public void call(Object... args) { //TODO process ACK } }); 
  1. Опять же, как я должен обрабатывать (Object... args) ?

Что ж. Я, наконец, понял это сам.

Как обрабатывать (Object... args) метод вызова слушателя EVENT_CONNECT ?

Я еще не понял этого. Но я смотрю.

Что такое хороший минимальный набор событий, которые я могу реализовать, чтобы получать информацию о соединении

Эти три метода были бы достаточными:

Connect : Удар по успешному соединению.
Connect_error : вызывается при ошибке подключения.
Connect_timeout : Сработал с таймаутом соединения.

Источник: Socket.io Docs

Как я должен обрабатывать (Object... args) на подтверждение emit?

Итак, я копал документы и нашел это :

Сервер (app.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' }); }); 

Таким образом, args будет тем, что сервер отправил как параметр в обратный вызов. Таким образом, вы можете написать код клиента Java для вышеуказанного кода сервера:

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

Параметром может быть JSON или любой из поддерживаемых типов данных в socket.io:

Мы отправляем строку, но вы также можете делать данные JSON с пакетом org.json и даже поддерживать двоичные данные!