Vi que hay un par de hilos similares pero no pude encontrar mi respuesta.Android para comunicación node.js
Estoy haciendo una aplicación android, y quiero usar el nodo como servidor para la comunicación en tiempo real.
Realmente no puedo hacer que esto funcione.
Probablemente estoy haciendo muchas cosas mal pero me gusta tratar de entender.
Mi servidor es tan simple como
var http = require('http'),
io = require('socket.io'),
server = http.createServer(function(req, res){
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(':)');
});
server.listen(8080);
var socket = io.listen(server);
socket.on('connection', function(client){
client.send("hello");
console.log("connected!");
});
y esto funciona ... He intentado esto con una aplicación web y me puedo conectar.
pero no puedo con Java ..
traté kryonet pero me da una excepción como "conectado, pero el tiempo de espera en el registro"
me trató weberknecht me sale un "error al crear zócalo para ws : //184.xxxxxx: 8080 "
Intenté TooTallNate, no tuve suerte, solo llamé al método de Cerrar.
me trataron jWebSocket pero no pude conseguir que funcione ...
Así que estoy aquí, pidiendo ayuda, ¿alguien sabe cómo hacer esto? ¿cualquier sugerencia?
P.S. para TooTallNate estoy usando algo como esto:
Net net = new Net(new URI("ws://184.xxxxxx:8080"),WebSocketDraft.DRAFT76);
podría ser el problema aquí?
ACTUALIZACIÓN: He manejado esto! después de un buen sueño tuve la idea, estaba usando socket.io, mala idea ... ahora uso Node Websocket Server con weberknecht. El servidor tiene el siguiente aspecto:
var ws = require("websocket-server");
var server = ws.createServer();
server.addListener("connection", function(client){
console.log("new connection");
client.send("aaaaaa");
client.addListener("message", function(msg){
});
});
server.listen(8080);
y el cliente:
try {
URI url = new URI("ws://184.106.69.64:8080/");
WebSocket websocket = new WebSocketConnection(url);
websocket.setEventHandler(new WebSocketEventHandler() {
public void onOpen(){
System.out.println("--open");
}
public void onMessage(WebSocketMessage message){
System.out.println("--received message: " + message.getText());
}
public void onClose(){
System.out.println("--close");
}
});
websocket.connect();
websocket.send("hello world");
}
catch (WebSocketException wse) {
wse.printStackTrace();
}
catch (URISyntaxException use) {
use.printStackTrace();
}
Creo que el problema es la websocketdraft. Hay 3 borradores por doquier, 76, 00 y 06. Socket.io es bastante vanguardista para estar al día con los borradores nuevos, pero dudo que sean tus bibliotecas Java. – Raynos
si está utilizando una aplicación de Android como cliente en lugar de un navegador, no tiene sentido utilizar websockets. websockets están hechos para configuraciones de servidor/navegador. – eggie5