0

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

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

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

4

1 回答 1

1

websockets 要求你升级一个 http 连接,一旦这个连接升级,你就不再是在说 http,而是在说 websocket。

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

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

于 2012-08-31T13:02:33.333 回答