我想使用socket.io将数据从服务器推送到浏览器,但项目是java tomcat,而 Github 中有很多实现{{1}的服务器实现}。他们中的大多数人说他们已被弃用或者更好的可用。任何人都建议我做一个很好的实施。
我看到很多关于使用socket.io
进行广播的演示和示例代码。我的要求是将不同的消息推送给不同的客户端。有人能指点我一些好的演示或教程处理这些东西吗?
谢谢
答案 0 :(得分:47)
答案 1 :(得分:6)
我们正在制作这个:Socket.IO-Java。我们根据我们的要求定制。但在主要情况下它运作良好。
我的同事在github分享了自定义版本。我们使用的是Jetty 8,另外一个servlet容器可能存在一些问题。此外,我们考虑使用仅限WebSocket的实现,当微软不支持XP时。
答案 2 :(得分: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);
}
}
});