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:
publicclassEngineIoServletextendsHttpServlet {
privatefinalEngineIoServermEngineIoServer = newEngineIoServer();
@Overrideprotectedvoidservice(HttpServletRequestrequest, HttpServletResponseresponse) throwsIOException {
mEngineIoServer.handleRequest(request, response);
}
}Listen for new connections as follows:
EngineIoServerserver; // server instanceserver.on("connection", newEmitter.Listener() {
@Overridepublicvoidcall(Object... args) {
EngineIoSocketsocket = (EngineIoSocket) args[0];
// Do something with socket like store it somewhere
}
});Listen for raw packets received as follows:
EngineIoSocketsocket; // socket received in "connection" eventsocket.on("packet", newEmitter.Listener() {
@Overridepublicvoidcall(Object... args) {
Packetpacket = (Packet) args[0];
// Do something with packet.
}
});Listen for messages from the remote client as follows:
EngineIoSocketsocket; // socket received in "connection" eventsocket.on("message", newEmitter.Listener() {
@Overridepublicvoidcall(Object... args) {
Objectmessage = args[0];
// message can be either String or byte[]// Do something with message.
}
});Send a packet to client as follows:
EngineIoSocketsocket; // socket received in "connection" eventsocket.send(newPacket<>(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
