在基于 Spring 的 Java 服务器上管理与 Web 客户端的异步/推送通信的最佳方式
我需要以跨浏览器的方式(iPhone、iPad、Android、IE/FF/Chrome/等)从基于 Spring 的 Java 服务器将事件推送到 Web 客户端。我在客户端使用backbone.js。
据我所知,我可以选择仅使用 Web 套接字的方法,也可以使用诸如 socket.io 之类的方法。
此问题的最佳实践是什么?我应该使用哪个平台/框架?
谢谢
I need to push events to web clients in a cross-browser manner (iPhone, iPad, Android, IE/FF/Chrome/etc.) from a Spring based Java server. I am using backbone.js on the client side.
To my best knowledge, I can either go with a Web socket only approach, or I can use something like socket.io.
What is the best practice for this issue, and which platform/frameworks should I use?
Thanks
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
看起来您对 AJAX Push 引擎感兴趣。 ICEPush(制作 ICEFaces 的同一组织)提供了这些功能,并可与各种服务器端和客户端配合使用框架。还有APE。
Looks like you're interested in an AJAX Push engine. ICEPush (same group that makes ICEFaces) provides these capabilities, and works with a variety of server- and client-side frameworks. There is also APE.
您可以查看Lightstreamer。
我的公司目前正在使用它从网络服务器推送实时财务数据。
You can have a look at Lightstreamer.
My company is currently using it to push real time financial data from a web server.
我想 Grizzly 或 Netty 可能会满足您的需求。不幸的是,在这个范围内没有真正的经验。
I suppose Grizzly or Netty may fit your needs. Don't have a real experience in that scope, unfortunately.
如果您从远程主机进行基于浏览器的事件处理,我建议您在问题中提到 socket.io 。 Socket.io 直接从 JavaScript 处理所有连接保持活动和重新连接,并具有将消息传送到特定会话(用户)的功能。真正的优势来自 WebSocket 的双向通信,无需维护连接的所有样板代码。
您需要深入挖掘 Java 实现,但请考虑直接从 V8 运行服务器。
I'd recommend socket.io as you mentioned in your question, if you're doing browser based eventing from a remote host. Socket.io handles all the connection keep-alives and reconnections directly from javascript and has facilities for channeling messages to specific sessions (users). The real advantage comes from the two-way communication of WebSockets without all the boilerplate code of maintaining the connection.
You will need to do some digging for a java implementation thoughConsider running the server directly from V8.