Netty聊天系统用户和channel的映射关系维护


描述

这是一篇记录,开发Netty聊天系统时遇到 user - channel 映射处理问题相关思考和思路的博客。最后找到了适合的解决方案。


背景

 在开发一个IM系统的过程中,因为涉及到聊天消息的转发,需要在服务器根据用户的唯一标识userId能给够获取到该用户对应的channel。用了一个HashMap做 userId - Channel 的关系映射。但此时遇到了一个问题:

  • 断开连接后会回调 handlerRemoved 的方法,此时我们只能获取到channel,并没有办法从上述的HashMap中移除相应退出登录的映射。如果用 foreach 遍历 HashMap 来删除 key - value 的话,当HashMap容量比较大时很消耗资源。
@Override
public void handlerRemoved(ChannelHandlerContext ctx) {
   
    System.out.
  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值