3

事件网络应用程序是当今的热门话题,但似乎没有一个独特的解决方案。特别是对于后端,独立于编程语言。

我打开这个主题来讨论提供给社区的各种解决方案。

我尝试了 Atmosphere,但体验有点令人沮丧。我花了很多时间玩这个框架,结果发现它对开发人员并不完全友好。首先是一个基于 maven 的项目:除了文档之外,开发人员还必须学习(或至少知道)maven 的工作原理以及 pom.xml 是什么。概念看起来很简单,但它有很多 java 注释,在我看来,这会使事情变得过于复杂。该框架的优势在于能够决定和使用客户端支持的协议。

从我读过的内容来看,node.js 似乎对开发人员更友好。您如何看待这些技术?

4

2 回答 2

6

我是CometD的项目负责人,它是一个与传输无关的网络消息传递框架(带有回退到 http 的 websocket),并提供了许多特性,如消息确认和集群等。

CometD 也基于 Maven,但它的工件可以与您已经拥有的任何其他构建系统(Ant、Ivy、Gradle 等)一起使用。

CometD 的概念非常简单,您可以编写带注释使用继承的服务。

CometD 的可扩展性很棒:在我们的负载测试中,一台服务器能够处理 20 万个 websocket 客户端,而其他人甚至可以达到更多(https://twitter.com/myBuzzNight/status/388024046027161600)。

从我的报告来看,CometD 的学习曲线非常低。一个人在几天内建立了 e-chat.co 。

您可以使用一个衬垫设置一个框架 CometD 项目,甚至可以使用CometD 教程使用的预制框架项目。

JavaScript 是它的语言,你可能会发现,如果你的项目增长到超过一定规模,你希望保留像 Java 这样的静态类型语言来进行重构、工具、IDE 等,更不用说那些工具了可用于 JVM 进行监控/管理等。

JVM 在多线程场景(如服务器端事件驱动应用程序)中的可伸缩性是众所周知的。

与其他解决方案一样,CometD由一家公司提供支持,以防您需要专业支持。

于 2013-10-11T16:17:43.760 回答
3

我强烈推荐 node.js。

它是用 javascript 编码的,我个人非常喜欢能够坚持使用网络语言。

此外,您可以使用 socket.io,它使用 node.js 实现 websockets。

于 2013-10-11T16:10:44.383 回答