事件网络应用程序是当今的热门话题,但似乎没有独特的解决方案。特别是对于后端,独立于编程语言。
我打开这个话题来讨论提供给社区的各种解决方案。
我尝试了Atmosphere,但体验有点令人沮丧。我花了很多时间玩这个框架,最终发现它对开发人员并不完全友好。首先是一个基于 maven 的项目:除了文档之外,开发人员还必须学习(或至少知道(maven 的工作原理以及什么是 pom.xml。概念看起来很容易,但它有很多Java注释,在我看来,这往往会使事情变得过于复杂。该框架的优势在于能够决定和使用客户端支持的协议。
从我所读到的节点来看.js似乎是对开发人员更友好的。您如何看待这些技术?
我是CometD的项目负责人,CometD是一个与传输无关的Web消息传递框架(websocket回退到http(,并提供许多功能,如消息确认和集群等等。
CometD 也基于 Maven,但它的工件可以与您已有的任何其他构建系统(Ant、Ivy、Gradle 等(一起使用。
CometD 的概念非常简单,您可以编写带注释或使用继承的服务。
CometD 的可扩展性非常棒:在我们的负载测试中,一台服务器能够处理 200k websocket 客户端,而其他人甚至达到了更多(https://twitter.com/myBuzzNight/status/388024046027161600(。
从我掌握的报告来看,CometD的学习曲线相当低。一个人在几天内就设置了 e-chat.co。
您可以使用一个衬里设置骨架 CometD 项目,甚至可以使用 CometD 教程使用的预制骨架项目。
JavaScript 是它的语言,你可能会发现,如果你的项目增长到一定规模以上,你希望继续使用像 Java 这样的静态类型语言进行重构、工具、IDE 等,更不用说可用于 JVM 的工具用于监控/管理等。
JVM 在多线程场景(如服务器端事件驱动的应用程序(中的可伸缩性是众所周知的。
与其他解决方案一样,CometD由公司提供支持,以防您需要专业支持。
我强烈推荐node.js。
它是用javascript编码的,我个人真的很喜欢能够坚持使用Web语言。
此外,您可以使用 socket.io,它使用 node.js 实现 websockets。