This is the Engine.IO Server Library for Java ported from the JavaScript server.
See also: Engine.IO-client Java
Complete documentation can be found here.
The latest artifact is available on Maven Central.
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>
Add it as a gradle dependency in build.gradle
.
compile ('io.socket:engine.io-server:1.3.1')
The current version of engine.io-java does not support protocol 1.x.
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"));
Please see the complete documentation on handling WebSockets here.
This library supports all of the features the JS server does, including events, options and upgrading transport.
MIT