Erfolgreich führen-Buchse.IO-Android-Projekt mit NodeJS

Habe ich es geschafft, ein Socket.IO/Android Projekt zu kompilieren und jetzt bin ich versucht, es zu erhalten, um die Kommunikation mit Socket.IO auf einem NodeJS-server. Ich legte das Projekt auf meiner Drop Box hier:

https://dl.dropboxusercontent.com/u/86164338/socketIOAndroid.zip

Alles kompiliert und läuft, aber ich sehe keine Ausgabe von NodeJS.

Diese basiert auf:
https://github.com/Gottox/socket.io-java-client

Beachten Sie, dass es Anweisungen zur Kompilierung der Java-code und kopieren Sie die jar-Datei in den Ordner libs:

git clone git://github.com/Gottox/- Buchse.io-java-client.git

cd-Buchse.io-java-client

ant jar mv jar/socketio.jar

/Pfad/zu/deinem/libs/Projekt

Jede Hilfe wird sehr geschätzt.

Java-Code:

package com.depictlabs.testsockets03;

import java.net.MalformedURLException;
import java.net.URI;

import org.json.JSONObject;


import io.socket.SocketIO;
import io.socket.IOCallback;
import io.socket.IOAcknowledge;
import io.socket.SocketIOException;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

import org.json.JSONException;
import org.json.JSONObject;

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        SocketIO socket;

        try{
            System.out.println("Initializing Connection.");

            socket = new SocketIO("http://localhost:3000/");
            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 + "'");
                        }
                    }
                );

            try {
                //This line is cached until the connection is established.
                System.out.println("Sending message to server.");
                socket.send("user message");
            } catch (Exception e) {
                //TODO Auto-generated catch block
                e.printStackTrace();
            }
        } catch (MalformedURLException e1) {
            e1.printStackTrace();
        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        //Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

NodeJS-Code:

var http = require('http')
, io   = require('socket.io');

var app = http.createServer();
app.listen(3000);

console.log('Server running at http://127.0.0.1:3000/');

//Socket.IO server
var io = io.listen(app)
, nicknames = {};

io.sockets.on('connection', function (socket) {
    socket.on('user message', function (msg) {
        console.log('Server running at http://127.0.0.1:3000/');
        socket.broadcast.emit('user message', {user: socket.nickname, message: msg.message});
    });

    socket.on('nickname', function (nick, fn) {
        console.log('Server running at http://127.0.0.1:3000/');
        nickname = nick.nickname;
        if (nicknames[nickname]) {
            fn(true);
        } else {
            fn(false);
            nicknames[nickname] = socket.nickname = nickname;
            socket.broadcast.emit('announcement', {user: nickname, action: 'connected'});
            io.sockets.emit('nicknames', nicknames);
        }
    });

    socket.on('disconnect', function () {
        console.log('Server running at http://127.0.0.1:3000/');
        if (!socket.nickname) return;

        delete nicknames[socket.nickname];
        socket.broadcast.emit('announcement', {user: socket.nickname, action: 'disconected'});
        socket.broadcast.emit('nicknames', nicknames);
    });
});
Es ist wirklich ein Schmerz zu laden, setup und lösen Ihr Problem. Bitte posten Sie eine lokale Frage von nächsten mal..
Sorry, weiß nicht, was du meinst mit "lokalisiert". Ich versuchte es einfach, indem ein download-als auch der code.
By the way, es scheint nicht zu funktionieren auf dem emulator. Ich habe nicht versucht, auf ein Gerät, wie ich nicht über ein handy. Danke!!!
Ich bin auf der Suche in.. Halten 🙂
Ich glaube nicht, dass Ihr node.js server ist richtig geschrieben. Hast du es getestet?

InformationsquelleAutor Victor Diaz | 2013-10-30

Schreibe einen Kommentar