This is the Engine.IO Server Library for Java ported from the JavaScript server.
NOTE This library will follow the major version of the JS library starting with version 4.
See also: Socket.IO-server Java, Engine.IO-client Java
Complete documentation can be found here.
If you're looking for the socket.io library instead, please see 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>6.2.1</version>
</dependency>
</dependencies>
Add it as a gradle dependency in build.gradle
.
implementation ('io.socket:engine.io-server:6.2.1')
The current version of engine.io-java does not support protocol 1.x.
If you're looking for the socket.io library instead, please see here.
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.
Apache 2.0