【问题标题】:WebSocket: best solution for back-end [closed]WebSocket:后端的最佳解决方案[关闭]
【发布时间】:2013-10-19 18:30:14
【问题描述】:

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

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

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

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

【问题讨论】:

  • 什么对你来说“容易”很大程度上取决于你对什么技术感到满意。

标签: java javascript websocket backend


【解决方案1】:

我强烈推荐 node.js。

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

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

【讨论】:

  • 我也认为这里的大多数人会选择 node.js 作为 websocket 解决方案。我刚刚发现了这个 webbit:thechangelog.com/…:一个服务器端的 java websocket 服务器。尽管它没有实现回退协议,但我认为它可能是一个有效的 java 替代方案。
【解决方案2】:

我是 CometD 的项目负责人,这是一个与传输无关的 Web 消息传递框架(带有回退到 http 的 websocket),并提供了许多功能,例如消息确认和 clustering 以及许多其他功能。

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

CometD concepts 非常简单,您可以编写annotateduse inheritance 的服务。

CometD 的可扩展性非常棒:在我们的负载测试中,一台服务器能够处理 20 万个 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,以防您需要专业支持。

【讨论】:

    猜你喜欢
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-08
    • 2016-09-10
    • 2010-11-27
    • 1970-01-01
    • 2014-11-27
    相关资源
    最近更新 更多