【发布时间】:2013-06-24 16:32:13
【问题描述】:
我有一个非常简单的问题,但我在 Google 上找不到任何有趣的东西。
是否存在与 SignalR (.NET) 等效的 Java 版本?
SignalR 是一个 .NET 框架,它为旧浏览器实现了 Websockets。
真的很感谢你。
【问题讨论】:
我有一个非常简单的问题,但我在 Google 上找不到任何有趣的东西。
是否存在与 SignalR (.NET) 等效的 Java 版本?
SignalR 是一个 .NET 框架,它为旧浏览器实现了 Websockets。
真的很感谢你。
【问题讨论】:
有一个Play框架模块SignalJ
更新:SignalJ看起来死了,看Scala Web Sockets
【讨论】:
看来Atmosphere 可能就是你要找的。p>
来自github描述:
Atmosphere Framework 包含客户端和服务器端组件 用于构建异步 Web 应用程序。
我还没有尝试过,但是this 说它支持主要的 JEE 服务器(JBoss、Tomcat、Glassfish、Jetty)和所有主要的浏览器和传输(WebSockets、SSE、Long-Polling 等)。
2014 年 6 月 4 日更新: “Java 等效于 SignalR”还有另一个值得注意的替代方案。从 4.0 版开始,Spring Framework 附带了support for WebSockets 和对 SockJS 的服务器端支持。这意味着它还支持 WebSocket-Fallback,与浏览器端 sockjs-client 库一起使用。 正如 Spring 文档所说:
WebSocket 尚不支持所有浏览器,可能会被限制性网络代理排除。这就是为什么 Spring 提供了基于 SockJS 协议尽可能接近地模拟 WebSocket API 的后备选项 [...] 在浏览器端,应用程序可以使用模拟 W3C WebSocket API 并与服务器通信的 sockjs-client根据运行的浏览器选择最佳传输选项。
到目前为止,我仍然不知道 Java 框架中是否支持 SignalR Hubs(涉及 JavaScript 代码生成)之类的东西,但另一方面,我认为您可以轻松模仿类似 SignalR 的 PersistentConnection为旧版浏览器提供完整的后备支持。
此外,由于JSR 356 aka Java API for WebSocket,我认为所谓的“主流”Java Web 框架将提供开箱即用的支持只是时间问题Websockets+Fallback,特别是考虑到所有主要的 servlet 容器(如 Tomcat 和 Jetty)和 JEE 7 服务器(Glassfish、Wildfly)都已经支持 JSR 356。
【讨论】: