【发布时间】:2012-02-15 12:40:32
【问题描述】:
假设一个简单的网络服务器:
当第一个客户端连接时,我们会记住频道。如果第二个客户端连接,我们希望将它与第一个通道连接,这样在第一个通道上写入的所有内容都将在第二个通道上写入,反之亦然。
最后,这个简单的应用程序将类似于 telnet 到 telnet 聊天。
【问题讨论】:
标签: netty
假设一个简单的网络服务器:
当第一个客户端连接时,我们会记住频道。如果第二个客户端连接,我们希望将它与第一个通道连接,这样在第一个通道上写入的所有内容都将在第二个通道上写入,反之亦然。
最后,这个简单的应用程序将类似于 telnet 到 telnet 聊天。
【问题讨论】:
标签: netty
将两个 Channel 添加到 DefaultChannelGroup 并存储它的引用。然后,当您想写入 Channels 时,只需调用 ChannelGroup 上的 write(...) 方法即可。
【讨论】:
据我所知,连接两个套接字通道没有严格的方法。 (但有办法连接非socket通道,两个本地通道使用LocalChannel,任意输入输出流使用IOStreamChannel)。
我认为这个问题可以通过在管道中使用桥通道处理程序(扩展 SimpleChannelHandler)来解决,该处理程序在 channelConnected()、channelDisconnected() 以及 messageReceived() 上将通道添加/删除到哈希表中正确的对等通道并将消息写入其中。
【讨论】: