Gottox/socket.io-java-client · GitHub

7089 ワード

Socket.IO-Client for Java
socket.io-java-client is an easy to use implementation of socket.io for Java.
It uses Weberknecht as transport backend, but it's easy to write your own transport. See description below. An XHR-Transport is included, too. But it's not functional in its current state.
The API is inspired by java-socket.io.client.
Features:
  • transparent reconnecting - The API cares about re-establishing the connection to the server when the transport is interrupted.
  • easy to use API - implement an interface, instantiate a class - you're done.
  • output buffer - send data while the transport is still connecting. No problem, socket.io-java-client handles that.
  • meaningful exceptions - If something goes wrong, SocketIO tries to throw meaningful exceptions with hints for fixing.

  • Status: Connecting with Websocket is production ready. XHR is in beta.
    How to use
    Using socket.io-java-client is quite simple. But lets see:
    Checkout and compile the project:
    
    git clone git://github.com/Gottox/socket.io-java-client.git
    cd socket.io-java-client
    ant jar
    mv jar/socketio.jar /path/to/your/libs/project

    If you're using ant, change your build.xml to include socketio.jar. If you're eclipse, add the jar to your project buildpath.
    Afterwards, you'll be able to use this library:
    
            SocketIO socket = new SocketIO("http://127.0.0.1:3001/");
            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!");
    

    For further informations, read the Javadoc.
  • Class SocketIO
  • Interface IOCallback

  • Checkout
  • with git
    git clone git://github.com/Gottox/socket.io-java-client.git 
  • with mercurial
    hg clone https://bitbucket.org/Gottox/socket.io-java-client  

  • Both repositories are synchronized and up to date.
    Building
    to build a jar-file:
    cd $PATH_TO_SOCKETIO_JAVA ant jar ls jar/socketio.jar 

    You'll find the socket.io-jar in jar/socketio.jar
    Bugs
    Please report any bugs feature requests to the Github issue tracker
    Frameworks
    This Library was designed with portability in mind.
  • Android is fully supported.
  • JRE is fully supported.
  • GWT does not work at the moment, but a port would be possible.
  • Java ME does not work at the moment, but a port would be possible.
  • ... is there anything else out there?

  • Testing
    There comes a JUnit test suite with socket.io-java-client. Currently it's tested with Eclipse.
    You need node installed in PATH.
  • open the project with eclipse
  • open tests/io.socket/AllTests.java
  • run it as JUnit4 test.

  • 全文を読むと...