同步点与异步点之间的通信

Communication between synchronous and asynchronous points

我的场景中包含三个元素:

A = 浏览器
B = J2EE 服务器侦听 Websockets 和简单的 GET 请求
C = Java 应用程序通过 websockets 连接到 B

A 向 B 发出 GET 请求(同步),B 发送包含请求信息的 Websocket 消息,C 响应(异步)并且 B 应该像开始时一样在 SAME context/request/thread 内发回响应。

A                       B                                 C
| ---- GET request ---> | ----- Websocket message ------> |
|                       | <---- Websocket response ------ |
| <---- response -----  |                        

我的问题是,如何在等待 C 的响应时停止左侧的 GET 请求。B 可以充当那些 synchronous/asynchronous 元素之间的中间点吗?

我猜你应该在 B 端做类似 "long polling" 的事情。 看看Implementing long polling in an asynchronous fashion

这对我很有帮助,而且效果很好。 https://github.com/mejmo/async2sync