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