我需要根据登录名和客户端连接的主机名/端口对连接数进行严格限制。
关于方法的任何想法?
我认为您可以使用 ChannelGroup 来跟踪连接。根据 channelGroup 的内容,做出限制连接的决定。请参阅下面的代码片段。添加到 channelGroup 中的所有通道在关闭时会自动删除。
class YourHandler extends SimpleChannelHandler {
ChannelGroup channelGroup = new DefaultChannelGroup();
@Override
public void channelOpen(ChannelHandlerContext ctx, ChannelStateEvent e)
{
// make a decision if you want to accept connection
// if not just close it using ctc.getChannel().close()
}
@Override
public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e)
{
channelGroup.add(ctx.getChannel());
}
}