即兴网络应用程序是当今的一个热门话题,但似乎没有一个独特的解决方案。特别是对于后端,独立于编程语言。
我打开这个主题,讨论为社区提供的各种解决方案。
我尝试过Atmosphere,但体验有点令人沮丧。 我花了很多时间玩这个框架,结果发现它不是完全开发人员友好的。首先是一个基于maven的项目:除了文档之外,开发人员还必须学习(或至少知道)maven是如何工作的以及pom.xml是什么。 概念看起来很简单,但它有很多java注释,在我看来,这往往会让事情变得太复杂。该框架的优势在于能够决定和使用客户端支持的协议。
从我读到的内容看,node.js似乎更适合开发人员。 您如何看待这些技术?
答案 0 :(得分:6)
我是CometD的项目负责人,这是一个与传输无关的Web消息传递框架(websocket with fallback to http),并提供了许多功能,如消息确认和clustering以及许多其他功能
CometD也基于Maven,但它的工件可以与你已经拥有的任何其他构建系统一起使用(Ant,Ivy,Gradle等)。
CometD concepts非常简单,您可以编写annotated或use inheritance的服务。
CometD可伸缩性非常棒:我们的负载测试中的单个服务器能够处理200k websocket客户端,而其他人甚至可以达到更多(https://twitter.com/myBuzzNight/status/388024046027161600)。
根据我的报告,CometD学习曲线非常低。 一个人在几天内设置e-chat.co。
您可以使用one liner设置骨架CometD项目,甚至可以使用CometD tutorials使用的预制骨架项目。
JavaScript是它的语言,你可能会发现,如果你的项目增长超过一定的规模,你希望保留一个静态类型的语言,如Java的重构,工具,IDE等,而不是提及可供JVM监控/管理的工具等。
JVM在多线程场景(如服务器端事件驱动的应用程序)中的可伸缩性是众所周知的。
与其他解决方案一样,如果您需要专业支持,CometD为backed by a company。
答案 1 :(得分:3)
我强烈推荐node.js。
它是用javascript编写的,我个人非常希望能够坚持使用网络语言。
此外,您可以使用socket.io,它使用node.js实现websockets。