http - Tomcat:响应http POST请求的Websocket广播

标签 http tomcat servlets websocket

每次收到特定的 POST 请求时,我都需要通过 websocket 广播消息。问题是一个 servlet(扩展的 HttpServlet)接收 POST 请求,而另一个(扩展的 WebSocketServlet)处理 websocket 连接。

我不能使用 RequestDispatcher(如果我正确理解的话),因为请求类型不同,而且我需要在 POST 接收的 servlet 中进一步处理请求。

我不知道我是否可以将 ws-request 从第一个 servlet 发送到第二个 servlet,但即使我可以,这似乎也不是正确的方法...

最佳答案

websockets 要求您升级 http 连接,一旦该连接升级,您就不再使用 http,而是使用 websocket。

所以 websockets 没有 http POST 语义的概念

理论上,如果你在 A 点和 B 点之间有两个连接,一个是 http,一个是 websocket,你可以像在服务器中那样协调这种设置自定义,但我认为这将是一个糟糕的设计,太多了参与协调。最好只使用像 cometd 这样的消息库,您可以在其中进行与协议(protocol)无关的来回消息传递。然后你让那个消息库决定它是否应该通过长轮询与 websocket 或 spdy 或 http 或只是简单的 ole http 交谈。

关于http - Tomcat:响应http POST请求的Websocket广播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12215822/

相关文章:

http - 通过http连接连接到smtp服务器

http - Golang 中的内容长度

c++ - 如何避免boost的野兽中的body_limit错误并正确处理大消息

HTTP block : All chunks sent consecutively and uninterrupted?

spring-boot - 将外部第三方属性文件与 Spring Boot Fat Jar 一起使用

java - Solr/tomcat 中的 SocketException 管道损坏

java - 如何使用来自 JSP 页面的参数运行 java 类?

java - struts2 + spring MVC的ServletActionContext

java - 如何以编程方式注册 JSF 托管 bean?

java - 我的 JSP 未使用 servlet 中的刷新 header 从数据库获取更新值