Widziałem kilka podobnych wątków, ale nie mogłem znaleźć odpowiedzi.Android do komunikacji node.js
Robię aplikację na Androida, chcę używać węzła jako serwera do komunikacji w czasie rzeczywistym.
Naprawdę nie mogę tego uruchomić.
Prawdopodobnie popełniam wiele błędów, ale lubię próbować zrozumieć.
Mój serwer jest tak proste jak
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!");
});
i to działa ... Próbowałem to z aplikacji internetowych i mogę się połączyć.
Ale nie mogę z java ..
Próbowałem kryonet ale otrzymuję wyjątek jak „podłączony, ale czas oczekiwania na rejestrację”
Próbowałem weberknecht dostaję „Błąd podczas tworzenia gniazdo do ws : //184.xxxxxx: 8080 "
Próbowałem TooTallNate, bez powodzenia, to po prostu wywołaj metodę Zamknij.
Próbowałem jWebSocket ale nie mogę zmusić go do pracy ...
Więc jestem tutaj z prośbą o pomoc, czy ktoś wie, jak się to robi? jakieś sugestie?
P.S. dla TooTallNate używam coś takiego:
Net net = new Net(new URI("ws://184.xxxxxx:8080"),WebSocketDraft.DRAFT76);
może być tu problem?
AKTUALIZACJA: Zajmowałem się tym! po dobrym śnie wpadłem na pomysł, użyłem socket.io, zły pomysł ... teraz używam Node Websocket Server z weberknecht. Serwer wygląda następująco:
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);
i klienta:
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();
}
Uważam, że problemem jest websocketdraft. Wokół znajdują się 3 szkice, 76, 00 i 06. Socket.io jest dość krwawym trendem, jeśli chodzi o nadążanie za nowymi wersjami, ale wątpię, aby były to biblioteki Java. – Raynos
jeśli używasz aplikacji na Androida jako klienta zamiast przeglądarki, nie ma sensu korzystać z websockets. websockets są tworzone dla konfiguracji serwera/przeglądarki. – eggie5