目录
- 环境安装
- 订阅
- redis发布-订阅的客户端编程
- 环境配置
- 客户端编程
- 功能测试
环境安装
sudo apt-get install redis-server
先启动redis服务
/etc/init.d/redis-server start
默认在6379端口上
redis是存键值对的,还可以存链表、数组等等复杂数据结构
而且数据是在内存上存储的,效率非常高
订阅
订阅了一个13
订阅通道号以及发布消息
redis_18">redis发布-订阅的客户端编程
环境配置
C++对应的则是hiredis
https://github.com/redis/hiredis
github上下载压缩包传到ubuntu中,然后make
sudo make install
然后把动态库拷贝到lib目录下
客户端编程
上报就是一个通道加上字符串(具体内容)
头文件那里一直找不到,反复搞json配置文件
后来发现是连接延迟
然后重启了一下vscode,就不报错了
登录成功就订阅id作为channel
注销就取消订阅
异常退出也取消订阅
如果用户不在本地服务器上在线,那就发布到redis上对应的用户idchannel上,由订阅的接收,群组聊天也是这个流程
功能测试
先启动redis
/etc/init.d/redis-server start
启动nginx
nginx启动需要root权限
然后用netstat -tanp查看一下端口,8000和6379全部打开了
然后打开两个客户端两个服务器
一登录就报段错误
修改了一下redis.cpp
而且都已经连上redis
咋没收到消息
感觉onechat出问题了
不需要这个标识在线了
只能在单台服务器通信,不能跨服务器通信
调试了一下我发现已经接收到了,但是没有打印出来
其实两边都收到消息了,但是没有在shell中打出来,没有接收到