在部署到Tomcat的Clojure Ring应用程序中使用websockets



我想使用 Ring 将 websocket 服务器部署到在 AWS Elastic Beanstalk 上运行的 Tomcat 容器中。我不确定如何做到这一点,或者如果不编写支持 websockets 的 Ring 适配器,是否可以做到这一点。

我看了一下ring.util.servlet,看起来它只处理HttpServlet。为了将 websockets 与 Tomcat 一起使用,我需要扩展 WebSocketServlet

我知道 http-kit,它看起来非常棒,但我无法将其部署到 Elastic Beanstalk 中,因为它不能在应用程序容器中运行,而必须作为独立应用程序运行。

有没有人将websockets Ring应用程序部署到Tomcat?

是的,http-kit 是用来代替 Tomcat 的,但您可以使用像 nginx 这样的反向代理。如果你真的不想这样做,你可以考虑将 Baseestal 与 SSE 一起使用,而不是 websockets。

除此之外,看起来没有任何用于 websocket 支持的环库,因此您必须自己开拓它。

您还可以查看 vertx,它内置了对 websocket 的支持。有一个clojure语言支持。看这里..这里有一个环形适配器。您还可以阅读有关如何在基于 clojure 环的应用程序中嵌入 vertx 的信息。

如果你可以自由使用除了tomcat之外的其他东西,你可以尝试基于jboss的不mutant。这是一篇关于不可变,顶点和websockets的文章。

乔希

最新更新