Skip to content
This repository was archived by the owner on Jul 21, 2021. It is now read-only.

Latest commit

 

History

History
108 lines (83 loc) · 3.03 KB

File metadata and controls

108 lines (83 loc) · 3.03 KB

Engine.IO Java

Build Status codecov

This is the Engine.IO Server Library for Java ported from the JavaScript server.

See also: Engine.IO-client Java

Documentation

Complete documentation can be found here.

Installation

The latest artifact is available on Maven Central.

Maven

Add the following dependency to your pom.xml.

<dependencies>
  <dependency>
    <groupId>io.socket</groupId>
    <artifactId>engine.io-server</artifactId>
    <version>1.3.1</version>
  </dependency>
</dependencies>

Gradle

Add it as a gradle dependency in build.gradle.

compile ('io.socket:engine.io-server:1.3.1')

Engine.IO Protocol 1.x suppport

The current version of engine.io-java does not support protocol 1.x.

Usage

Usage is slightly different based on the server being used.

Create a servlet to handle the HTTP requests as follows:

public class EngineIoServlet extends HttpServlet {

    private final EngineIoServer mEngineIoServer = new EngineIoServer();

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response) throws IOException {
        mEngineIoServer.handleRequest(request, response);
    }
}

Listen for new connections as follows:

EngineIoServer server;  // server instance
server.on("connection", new Emitter.Listener() {
    @Override
    public void call(Object... args) {
        EngineIoSocket socket = (EngineIoSocket) args[0];
        // Do something with socket like store it somewhere
    }
});

Listen for raw packets received as follows:

EngineIoSocket socket;  // socket received in "connection" event

socket.on("packet", new Emitter.Listener() {
    @Override
    public void call(Object... args) {
        Packet packet = (Packet) args[0];
        // Do something with packet.
    }
});

Listen for messages from the remote client as follows:

EngineIoSocket socket;  // socket received in "connection" event

socket.on("message", new Emitter.Listener() {
    @Override
    public void call(Object... args) {
        Object message = args[0];
        // message can be either String or byte[]
        // Do something with message.
    }
});

Send a packet to client as follows:

EngineIoSocket socket;  // socket received in "connection" event

socket.send(new Packet<>(Packet.MESSAGE, "foo"));

WebSockets

Please see the complete documentation on handling WebSockets here.

Features

This library supports all of the features the JS server does, including events, options and upgrading transport.

License

MIT