Skip to content

Full-featured Socket.IO Client Library for Java, which is compatible with Socket.IO v1.0 and later.

License

Notifications You must be signed in to change notification settings

VicV/socket.io-client.java

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

140 Commits
 
 
 
 
 
 

Repository files navigation

Socket.IO-client.java

#####VicV flavor

Basically ripped everything out to add this as a submodule in android studio, but not as a module.

Why? So I can make an android LIBRARY project that contains this instead of requiring transitive dependencies.

Build Status

This is the Socket.IO v1.0 Client Library for Java, which is simply ported from the JavaScript client.

See also: Engine.IO-client.java

Installation

The latest artifact is available on Maven Central. Add the following dependency to your pom.xml.

<dependencies>
  <dependency>
    <groupId>com.github.nkzawa</groupId>
    <artifactId>socket.io-client</artifactId>
    <version>0.2.0</version>
  </dependency>
</dependencies>

Or to install it manually, please refer dependencies to pom.xml.

Add it as a gradle dependency for Android Studio, in build.gradle:

compile 'com.github.nkzawa:socket.io-client:0.2.0'

Usage

Socket.IO-client.java has almost the same api and features with the original JS client. You use IO#socket to initialize Socket:

socket = IO.socket("http://localhost");
socket.on(Socket.EVENT_CONNECT, new Emitter.Listener() {

  @Override
  public void call(Object... args) {
    socket.emit("foo", "hi");
    socket.disconnect();
  }

}).on("event", new Emitter.Listener() {

  @Override
  public void call(Object... args) {}

}).on(Socket.EVENT_DISCONNECT, new Emitter.Listener() {

  @Override
  public void call(Object... args) {}

});
socket.connect();

This Library uses org.json to parse and compose JSON strings:

// Sending an object
JSONObject obj = new JSONObject();
obj.put("hello", "server");
obj.put("binary", new byte[42]);
socket.emit("foo", obj);

// Receiving an object
socket.on("foo", new Emitter.Listener() {
  @Override
  public void call(Object... args) {
    JSONObject obj = (JSONObject)args[0];
  }
});

Options are supplied as follows:

IO.Options opts = new IO.Options();
opts.forceNew = true;
opts.reconnection = false;

socket = IO.socket("http://localhost", opts);

You can get a callback with Ack when the server received a message:

socket.emit("foo", "woot", new Ack() {
  @Override
  public void call(Object... args) {}
});

Use custom SSL settings:

// default SSLContext for all sockets
IO.setDefaultSSLContext(mySSLContext);

// set as an option
opts = new IO.Options();
opts.sslContext = mySSLContext;
socket = IO.socket("https://localhost", opts);

See the Javadoc for more details.

http://nkzawa.github.io/socket.io-client.java/apidocs/

Features

This library supports all of the features the JS client does, including events, options and upgrading transport. Android is fully supported.

License

MIT

About

Full-featured Socket.IO Client Library for Java, which is compatible with Socket.IO v1.0 and later.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%