# websocket_nodejs_redis实现消息订阅系统 **Repository Path**: ityangzhiwen/mssystem ## Basic Information - **Project Name**: websocket_nodejs_redis实现消息订阅系统 - **Description**: nodejs+websocket+redis实现消息订阅系统 - **Primary Language**: JavaScript - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 5 - **Forks**: 2 - **Created**: 2018-04-24 - **Last Updated**: 2022-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # websocket_nodejs_redis实现消息订阅系统 #### 项目介绍 nodejs+websocket+redis实现消息订阅系统 #### 软件架构 基于nodejs向网页发送消息,用redis作为缓存列表,用websocket作为数据传送的通道。 #### 安装教程 1. 进入back-end,然后cnpm install或者npm install。 #### 使用说明 1. 进入front-end,打开index.html,可以用switch.html作为总开关页面。 2. 可以再网页进行一系列的操作,比如上线(默认是上线的,重复点会增加一名用户)、订阅、取消订阅、给某某订阅发送信息、群发、上传自己的用户名、点对点发(必需先上传自己的用户名作为标识符)、断开链接。 ### Redis介绍  Redis 是一个高性能的key-value数据库, 支nbsp持主从同步, 完全实现了发布/订阅机制, 因此可以用于聊天室等场景. 主要表现于多个浏览器之间的信息同步和实时更新,  和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。数据可以从master向任意数量的slave上同步,slave可以是关联其他slave的master。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机制,使得slave在任何地方同步树时,可订阅一个频道并接收master完整的消息发布记录。同步对读取操作的可扩展性和数据冗余很有帮助。 不懂的可以参照[redis安装与使用](./redis安装与使用.docx) #### 参与贡献 1. Fork 本项目 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 码云特技 1. 使用 Readme\_XXX.md 来支持不同的语言,例如 Readme\_en.md, Readme\_zh.md 2. 码云官方博客 [blog.gitee.com](https://blog.gitee.com) 3. 你可以 [https://gitee.com/explore](https://gitee.com/explore) 这个地址来了解码云上的优秀开源项目 4. [GVP](https://gitee.com/gvp) 全称是码云最有价值开源项目,是码云综合评定出的优秀开源项目 5. 码云官方提供的使用手册 [http://git.mydoc.io/](http://git.mydoc.io/) 6. 码云封面人物是一档用来展示码云会员风采的栏目 [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)