2012-04-17 105 views

回答

4

我認爲你可以使用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()); 
} 

} 
+0

今天研究了'ChannelGroup'代碼後,我相信我應該保留映射到通道組的通道組名稱的映射(基於用戶名)。即'ConcurrentHashMap '。通過這種方式,我可以在邏輯上將所有連接到特定用戶名的通道分組。然後,我可以通過用戶名參考每個組,並查找相應的計數。這聽起來合理嗎? – 2012-04-17 19:43:45

+0

是的,這是絕對合理的。 – 2012-04-17 21:45:22

相關問題