48

我想使用socket.io将数据从服务器推送到浏览器,但项目是 java tomcat 之一,并且Github中有很多实现用于socket.io. 他们中的大多数人说它们已被弃用或有更好的可用。任何人都可以建议我一个好的实现。

我看到很多关于使用socket.io. 我的要求是将不同的消息推送给不同的客户端。有人能指点我一些处理这些东西的好演示或教程吗?

谢谢

4

3 回答 3

53

作为作者,我建议在 Java 上尝试我的 SocketIO 服务器实现:

https://github.com/mrniko/netty-socketio

稳定和生产就绪的库。

于 2013-05-23T10:45:14.140 回答
6

我们在生产中使用这个:Socket.IO-Java。我们已经根据我们的要求对其进行了定制。但在主要情况下,它足够好。

我的同事在github中分享了定制版本。我们使用的是 Jetty 8,另一个 servlet 容器可能会出现问题。此外,当微软不支持 XP 时,我们考虑仅使用 WebSocket 实现。

于 2013-03-27T19:33:03.933 回答
3

你可以试试这个:https ://github.com/codeminders/socket.io-server-java

此实现松散地基于其他答案中提到的旧 Socket.IO-Java 库。

它支持 Socket.IO 1.0+ 客户端。websocket 传输是使用 Jetty 9 实现的,但库的核心部分不依赖于 Jetty。如果需要,用 Tomcat 实现 websocket 传输应该不是很困难。

我试图保持 API 类似于 Node.JS Socket.IO 服务器 API。因此,要将消息发送到特定的套接字,您只需要调用socket.emit()

这是要在 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);
            }
       }
}); 
于 2016-01-26T23:37:30.180 回答