我正在尝试以干净的方式构建应用程序的体系结构。我想我可以在Netty中做到这一点,因为它以java网络框架选项而闻名。
我有连接到Netty服务器的设备(TCP通过GPRS)。假设它们都是永久连接的(keepalive),并且我需要用这种架构来覆盖几种情况:
案例1 :设备可以向Netty和Netty的消息发送消息
案例2 :设备可以向Netty和Netty响应该消息发送消息,但是Netty应立即向设备发送多条消息,但对于每条消息,它必须等待响应才能发送下一条消息一个
案例3 :某些事件发生在应用程序中(Netty范围之外),Netty应对该事件做出反应并将消息发送到特定设备并从中获取响应
问题:
案例1 :很清楚
案例2 :当您实际拥有同步请求且Netty是异步框架时,如何开发此类案例?
案例3 :是否可以进入Netty上下文并获取特定设备的特定连接(线程)并向该设备发送消息?
答案 0 :(得分:0)
您可以为您的写入添加一个侦听器,并在下一次写入时触发该触发器。
如果您知道哪个ChannelHandlerContext属于您感兴趣的设备(您可以通过在每个连接时在Map中注册这些设置来存储),那么您可以使用该上下文触发事件。 Netty将负责排队该事件并确保它在适当的线程和渠道中进行处理。