【发布时间】:2015-06-04 16:48:07
【问题描述】:
我们有一个用 Restlet 框架编写的 web 服务器,现在我们想实现 websocket 来代替导致一些性能问题的长轮询设计。 查看了 RestLet 的论坛和文档,看起来 websocket 还不支持,甚至没有按计划进行。而且我们不想用其他框架替换 Restlet,因为它会发生很大的变化,现在我们提出了一些设计方案,不确定哪个最好:
- 启动另一个Jetty服务器,并使用Jetty的websocket lib来处理websocket连接;
- Prons:无需自行开发基于 Restlet 的 websocket 库;
- 缺点:需要有 2 个服务器监听不同的端口。
- 基于Restlet开发我们自己的websocket库:
- Prons:无需启动第二个服务器;
- 缺点:开发工作量大。
我们还在调查中,感谢任何分享和有价值的cmets,谢谢!!
【问题讨论】:
-
使用一些 websocket 库,在与 restlet 相同的 VM 中运行 websocket 服务器,在不同的端口上。
-
你的意思是在 Apache 中,配置 mod_proxy 将请求重定向到不同的端口?
-
你用的是什么框架?根据您提供的信息 @bayou.io 的答案似乎非常合理 - 是的,您可以将 Apache 配置为代理(而不是重定向)到适当的端口。
-
我们正在为 restfulApi 使用 RestLet 框架。感谢大家,我现在正在尝试调查 Apache 代理。看起来 RestLet 正在使用端口 8182,我们已经有一个代理配置,例如: - httpConfig: - ProxyPass /api localhost:8182/api retry=1 - ProxyPassReverse /api localhost:8182/api 我正在考虑启动另一个 JVM 来创建一个码头 websocket 服务器监听到 9120 等其他端口,并在 Apache 端添加代理配置。
-
websockets 没有什么 RESTFul 的。如果您想使用 Websocket,例如 Servlet API 和 Servlet 容器,请考虑使用不太集中的 API。对你的 POJO 进行 Gson 并通过 HTTP 响应将它们写出来并不难。
标签: java restlet java-websocket