Developpement di Android, Gottox socket.io-java-client: file non fount Exception /socket.io/1/

ecco il mio problema:

Ho cercato di utilizzare socket.io-java-client per un'applicazione android, ma sto finendo con un errore di handshake (vedi sotto).

  • RegistraBroadcastReceiver nell'impostazione Manifest.xml o dal codice sorgente di implementazione
  • Distruggi webview in Android
  • Il metodo setMobileDataEnabled non è più richiamabile da Android L e versioni successive
  • come convertire o registrare file .wav in 16khz 16bit mono little-endian?
  • L'applicazione Android si riavvia automaticamente dopo un incidente
  • SwipeyTabs - come creare tabs Swipey utilizzando la libreria ActionBarSherlock?
  • ecco il codice sorgente dell'applicazione:

    public void runIO(){ try { SocketIO socket = new SocketIO("http://192.168.1.60:1337"); socket.connect(new IOCallback() { @Override public void onMessage(JSONObject json, IOAcknowledge ack) { try { System.out.println("Server said:" + json.toString(2)); } catch (JSONException e) { e.printStackTrace(); } } @Override public void onMessage(String data, IOAcknowledge ack) { System.out.println("Server said: " + data); } @Override public void onError(SocketIOException socketIOException) { System.out.println("an Error occured"); socketIOException.printStackTrace(); } @Override public void onDisconnect() { System.out.println("Connection terminated."); } @Override public void onConnect() { System.out.println("Connection established"); } @Override public void on(String event, IOAcknowledge ack, Object... args) { System.out.println("Server triggered event '" + event + "'"); } }); // This line is cached until the connection is establisched. socket.send("Hello Server!"); } catch (MalformsdURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } 

    e il mio Node.js / Socket.io:

      var app = require('http').createServer(handler) var io = require('socket.io')(app); var fs = require('fs'); app.listen(1337); function handler (req, res) { fs.readFile(__dirname + '/index.html', function (err, data) { if (err) { res.writeHead(500); return res.end('Error loading index.html'); } res.writeHead(200); res.end(data); }); } io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

    E sto ottenendo il seguente errore:

      06-09 03:59:53.955: W/System.err(11738): io.socket.SocketIOException: Error while handshaking 06-09 03:59:53.965: W/System.err(11738): at io.socket.IOConnection.handshake(IOConnection.java:322) 06-09 03:59:53.965: W/System.err(11738): at io.socket.IOConnection.access$7(IOConnection.java:292) 06-09 03:59:53.970: W/System.err(11738): at io.socket.IOConnection$ConnectThread.run(IOConnection.java:199) 06-09 03:59:53.970: W/System.err(11738): Caused by: java.io.FileNotFoundException: http://192.168.1.60:1337/socket.io/1/ 06-09 03:59:53.975: W/System.err(11738): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:186) 06-09 03:59:53.975: W/System.err(11738): at io.socket.IOConnection.handshake(IOConnection.java:313) 

    In un browser funziona e la pagina a http://192.168.1.60:1337/socket.io/1/ restituisce il seguente messaggio (tramite un browser):

     {"code":0,"message":"Transport unknown"} 

    non so cosa fare per farlo funzionare … per favore: x

    Grazie: D

    EDIT:

    Come Larky ha detto, ho dovuto downgrade la mia versione di Socket.io a 0.9.16 . Ha funzionato come un fascino con il seguente codice del nodo:

      var io = require('socket.io').listen(80); io.on('connection', function (socket) { socket.emit('news', { hello: 'world' }); socket.on('my other event', function (data) { console.log(data); }); }); 

  • Il ciclo di vita di Fragment di Android sui cambiamenti di orientamento
  • Imansible caricare la libreria: reloc_library : imansible individuare 'rand'
  • Come disegnare un grafico in Android come Wifi Analyzer App?
  • Causa: java.lang.NoClassDefFoundError: class non trovata utilizzando il loader di class di avvio; nessuna traccia disponibile
  • Scrittura di XML su Android
  • URL con parametro in WebView non funzionante in Android?
  • One Solution collect form web for “Developpement di Android, Gottox socket.io-java-client: file non fount Exception /socket.io/1/”

    Ho risolto il problema oggi tornando a una versione precedente di socket.io sul lato server (una versione precedente del module socket.io Node). Forse il protocollo è cambiato?

    Per fare questo:

    1. Eliminare la cartella socket.io nella cartella node_modules.

    2. Sul tipo di console:

    npm install socket.io@0.9.16

    Questo dovrebbe farlo … ha funzionato per me 🙂

    (ovviamente questo non risolve completamente il problema ma la versione precedente di socket.io ha funzionato bene per me per i miei scopi)

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.