【问题标题】:Netty: Connecting two channelsNetty:连接两个通道
【发布时间】:2012-02-15 12:40:32
【问题描述】:

假设一个简单的网络服务器:

当第一个客户端连接时,我们会记住频道。如果第二个客户端连接,我们希望将它与第一个通道连接,这样在第一个通道上写入的所有内容都将在第二个通道上写入,反之亦然。

最后,这个简单的应用程序将类似于 telnet 到 telnet 聊天。

【问题讨论】:

    标签: netty


    【解决方案1】:

    将两个 Channel 添加到 DefaultChannelGroup 并存储它的引用。然后,当您想写入 Channels 时,只需调用 ChannelGroup 上的 write(...) 方法即可。

    【讨论】:

    • 写在ChannelGroup上的消息不是发给Group内的所有客户端,甚至发给调用者吗?
    • 是的,它会将消息发送到双方。
    【解决方案2】:

    据我所知,连接两个套接字通道没有严格的方法。 (但有办法连接非socket通道,两个本地通道使用LocalChannel,任意输入输出流使用IOStreamChannel)。

    我认为这个问题可以通过在管道中使用桥通道处理程序(扩展 SimpleChannelHandler)来解决,该处理程序在 channelConnected()、channelDisconnected() 以及 messageReceived() 上将通道添加/删除到哈希表中正确的对等通道并将消息写入其中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多