¿El método IOAcknowledge no funciona para SocketIO en Android?
Estoy usando socketio.jar para establecer la conexión entre el cliente y el servidor .
Es decir desde mi dispositivo Android (Cliente) a un servidor Nodo.
- Koush AndroidAsync ejemplo de socket
- Conectar cliente android a sails.js
- Conexión a un espacio de nombres socket.io mediante la biblioteca socket.io-client.java
- AndroidAsync Socket.io ArrayIndexOutOfBoundsException
- Cliente Socket.io android java que recibe mensajes y envía ejemplo de archivo
Como puedo con éxito conectar, enviar y recibir mensajes a ese servidor.
El problema es por qué no estoy recibiendo ningún acuse de recibo del socket después de enviar el mensaje al servidor. Hay una interfaz de llamada IOAcknowledge como parámetro, que nunca funciona / invoca para mí.
socket.emit( "sendMessage", new IOAcknowledge() { @Override public void ack(Object... arg0) { System.out.println("sendMessage IOAcknowledge" + arg0.toString()); } }, "Hi!! how are you");
¿Alguien sabe la solución cuando o cómo funciona IOAcknowledge ?
EDIT: Docs enlace de la biblioteca de socket que estoy utilizando.
Oficial y Github
- La mejor manera de implementar Socket.io en android
- Aplicación de Android Conexión al servidor Node.js mediante Socket.io
- Descartar error de transporte al utilizar Nodejs + SocketIO
- NodeJS + SocketIO empuja a la aplicación para móviles
- Socket.io - ReferenceError: io no está definido
- DataChannel.state () devuelve siempre CONNECTING webRTC Android
- Cómo manejar eventos de socket como servicio de fondo en Android?
- Android Nkzawa SocketIO desconectar y hacer una nueva conexión
Parece que olvidó invocar la devolución de llamada en el código del servidor:
var io = require('socket.io')(80); io.on('connection', function (socket) { socket.on('sendMessage', function (data, callback) { console.log('Message received:', data); callback('Message successfully delivered to server!'); }); });
Para obtener más información, compruebe este hilo o documentos
EDITAR:
El problema también es que la implementación de Ack
debe venir como el último parámetro de la función de emit
, por lo que su código Java debería tener este aspecto:
socket.emit("sendMessage", "Hi!! how are you", new Ack() { @Override public void call(Object... args) { System.out.println("sendMessage IOAcknowledge" + args.toString()); } });
- La ejecución de instrumentación falló debido a 'android.content.res.Resources $ NotFoundException'
- No puedo enviar retrofit 2.0 solicitud de varias partes con parámetros con las mismas claves