SWOOLE开发实时聊天系统(三)数据结构整理

在聊天室工作的过程中,用户首先应该订阅(登录),在数据库中存储了用户与直播ID的对应信息之后,才能让用户去收发消息。
订阅的数据结构按照MQ的方式来进行操作。

我们需要设置一下一级topic和二级topic,一级Topic是应用类型,在这里既然只有直播这一种应用类型,所以一级TOPIC可以设置为定值。
二级Topic的值设置为直播ID。
然后应该有一个Type,这个Type是发送到WS的数据类型,比如:检测心跳、发送消息或者订阅。

"type":"login",
"user_id":"10086",
"first_topic":"1",
"second_topic":"1"

然后需要定义用户ID与直播ID在数据库中的存储数据结构。

const  redis_key_group_user = 'ws_topic_first_topic_second_topic';//分组下对应的用户,可以通过直播ID来获取下面所有的用户
const  redis_key_user_group = 'ws_user_fd';//fd对应的分组 
const  user_bind_redis_key = "ws_user_bind_fd_redis_key";//fd绑定用户的redis_key hash表 fd=》user
const  fd_bind_user_redis_key = "ws_fd_bind_user_redis_key";//用户绑定fd的redis_key hash表 user=>fd
const  redis_expire_time=86400;

名词解释:fd 在swoole中对每个用户分配的唯一标识。
OK,数据结构整理完毕,下一步可以编写代码了。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容