我正在尝试一个演示应用程序,其中我们通过UI发送命令,然后通过Spring集成将命令传递到设备并将命令状态返回给UI,这是我第一次使用Spring Integration,对此我有点不确定渠道的各种实现。MQTT不提供P2P直接通信,因此在流,PublishSubscribe或Direct中应使用哪个通道作为入站和出站适配器?
我认为您需要了解的不仅仅是“我应该使用哪种渠道类型?”。
如果您要发送命令到设备并等待答复并将该答复发送给浏览器,则需要将本质上异步的协议转换为同步请求/答复方案。
您将需要以某种方式挂起http请求线程,直到收到来自设备的异步回复,将回复与请求相关联,并在将回复移交给它之后释放请求线程。
您可以简单地在您的计算机中进行关联,@Controller
然后将回复发送到控制器中的其他方法,在控制器中进行关联,然后释放http线程。
<int-mqtt:inbound-channel-adapter channel="results" .../>
<int:channel id="results" />
<int:service-activator ref="myController"
method="someMethodToReceiveTheReplyAndCorrelateToRequest" />
这个答案有一种用于类似用例的技术。我们正在考虑将一个组件添加到框架中,以使这种情况更易于实现。
无论如何,都可以使用DirectChannel
s连接组件。
如果我完全误解了您的问题,请澄清。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句