零、两种方案
1、消息中心,给项目中 topic为公告类型,开放一个接口。前端可以通过接口推送公告给kafka。所有用户接受 topic“公告”的数据,用来实时展示公告。(内容包括公告信息、公告标题、可见范围)根据是否可见在判断时候推送给前端展示公告。
后台需要支持:推送公告到kafka接口,监听kafka接口判断可见范围通过websocket返回给前端。
前台需要:通过http接口查询历史公告,使用websocket实时更新公告内容
2、聊天室,后台建一张表用来映射用户以及topic(聊天房间号)的关系。每个用户可以被加到不同的topic(聊天室中),每次用户登录便利自身处在几个聊天室,取对应topic内容,推送给前端,同时保存到数据库中做历史聊天记录。
后台需要支持:新建聊天室功能、遍历聊天室查询kafka数据websocket推送给前端,查询历史消息返回给前端
前台需要:通过http接口查询历史聊天内容,通过websocket实时获取最新聊天内容



