知识卡片
单聊消息路由表设计
内容
即时通信实现单聊的核心不是消息传输本身,而是服务端维护一张userId到TCP连接(Channel)的路由表:登录时把标识与连接绑定进表,下线时解绑;A发消息给B时,服务端取出B标识查表找到B的连接,把消息转发过去。服务端扮演的是消息路由器而非存储转发系统,连接须保持在线,路由表只是内存态映射。发散:这是单机版IM、长连接推送系统的通用骨架,规模扩大后要解决路由表跨机器共享,引出分布式会话管理。
参考来源
《跟闪电侠学Netty:Netty即时聊天实战与底层原理》第16章《客户端互聊的原理与实现》