La mejor implementación de servidor Java para socket.io
(3)
Quería usar socket.io para enviar datos desde el servidor al navegador, pero el proyecto es java tomcat one, y hay muchas implementaciones en Github para la implementación del servidor de socket.io
. La mayoría de ellos dicen que están en desuso o que hay mejores disponibles. ¿Alguien puede sugerirme una buena implementación?
Y veo mucha demo y código de muestra sobre la transmisión con socket.io
. Mi requerimiento es enviar diferentes mensajes a diferentes clientes. ¿Alguien podría indicarme una buena demostración o tutorial sobre este tipo de cosas?
Gracias
Como autor, sugiero probar mi implementación del servidor SocketIO en Java:
https://github.com/mrniko/netty-socketio
Estable y lista de producción lib.
Estamos utilizando en producción este: Socket.IO-Java . Lo hemos personalizado según nuestros requisitos. Pero en el caso principal, funciona lo suficientemente bien.
Mi colega compartió una versión personalizada en github . Estamos utilizando Jetty 8, puede haber algún problema con otros contenedores de servlets. Además, consideramos usar la implementación solo de WebSocket, cuando XP no sea compatible con Microsoft.
Puede probar este: https://github.com/codeminders/socket.io-server-java
Esta implementación se basa libremente en la antigua biblioteca Socket.IO-Java mencionada en otras respuestas.
Es compatible con Socket.IO 1.0+ clientes. El transporte de websocket se implementa con Jetty 9 pero no hay dependencia en Jetty para la parte central de la biblioteca. No debería ser muy difícil implementar el transporte de websocket con Tomcat si es necesario.
Traté de mantener la API similar a la API del servidor Node.JS Socket.IO. Por lo tanto, para enviar un mensaje a un socket específico, todo lo que necesita es llamar a socket.emit()
Aquí hay un pequeño fragmento de código que se llamará en su servlet SocketIO:
on(new ConnectionListener() {
public void onConnect(Socket socket)
{
try
{
socket.emit("welcome", "Welcome to Socket.IO Chat!");
}
catch (SocketIOException e)
{
socket.disconnect(true);
}
}
});