面试官:看你简历上写做过 IM,那简单问一下设计思路,多端同时在线,聊天记录还得同步,怎么设计?source
候选人:长连接、心跳、路由、推送队列、消息归档…… balabala……
面试官:用户太多了,消息存不下呢?
候选人:那就不存了啊。聊天记录放本地,服务端只管队列和分发。
面试官:那多端同步怎么办?
候选人:把第二台设备登录做复杂一点,尽量别让用户登录。
面试官:用户真登上了呢?
候选人:那就想办法从第一台设备那边 P2P 搬一点聊天记录过去……
面试官:你 tm 到底在哪做 IM 的?你给我滚出去!