I wanted to use socket.io to push data from server to browser but the project is java tomcat one, and there are many implementation in Github for the server implementation of socket.io
. Most of them say they are deprecated or better ones are available.Can anyone suggest me a good implementation.
And I see lot of demo and sample code about broadcasting with socket.io
. My requirement is to push different messages to different clients. Could someone point me to some good demo or tutorial dealing with such stuff?
Thanks
IO-client Java. This is the Socket.IO Client Library for Java, which is simply ported from the JavaScript client.
Socket.io, and WebSockets in general, require an http server for the initial upgrade handshake. So even if you don't supply Socket.io with an http server it will create one for you.
Socket.IO is way more than just a layer above WebSockets, it has different semantics (marks messages with name), and does failovers to different protocols, as well has heartbeating mechanism. More to that attaches ID's to clients on server side, and more. So it is not just a wrapper, it is full-featured library.
As author, I suggest to try my SocketIO server implementation on Java:
https://github.com/mrniko/netty-socketio
Stable and production ready lib.
We are using in production this one: Socket.IO-Java. We have customize it by our requirements. But in the main case it works good enough.
My colleague shared customized version in github. We are using Jetty 8, there are can be some problem with another servlet containers. Also, we consider using WebSocket only implementation, when XP will not supported by Microsoft.
You can try this one: https://github.com/codeminders/socket.io-server-java
This implementation is loosely based on old Socket.IO-Java library mentioned in other answers.
It supports Socket.IO 1.0+ clients. The websocket transport is implemented with Jetty 9 but there is no dependency on Jetty for core part of the library. It should not be very difficult to implement websocket transport with Tomcat if needed.
I tried to keep the API similar to Node.JS Socket.IO server API. So, to send a message to specific socket all you need is to call socket.emit()
Here is a small code fragment to be called in your SocketIO servlet:
on(new ConnectionListener() {
public void onConnect(Socket socket)
{
try
{
socket.emit("welcome", "Welcome to Socket.IO Chat!");
}
catch (SocketIOException e)
{
socket.disconnect(true);
}
}
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With