社区
eLTE
帖子详情
发现在用户登录成功后,查询群组信息或者调用其他接口都会收到-40099的错误,这是为什么?
baidu_30857225
2015-08-26 01:19:05
发现在用户登录成功后,查询群组信息或者调用其他接口都会收到-40099的错误,这是为什么?
...全文
686
1
打赏
收藏
发现在用户登录成功后,查询群组信息或者调用其他接口都会收到-40099的错误,这是为什么?
发现在用户登录成功后,查询群组信息或者调用其他接口都会收到-40099的错误,这是为什么?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ffchou
2015-09-10
打赏
举报
回复
登录完成后,需要等到收到EVENT_NOTIFY_PROVISION_ALLRESYNC回调事件后,才可以进行后续的接口调用。
基于muduo开发的集群聊天服务器c++源码+数据库+使用说明.zip
基于muduo开发的集群聊天服务器c++源码+数据库+使用说明.zip 基于muduo开发的集群聊天服务器c++源码+数据库+使用说明.zip 基于muduo开发的集群聊天服务器c++源码+数据库+使用说明.zip 【资源说明】 该项目是个人毕设项目源码,评审分达到95分,调试运行正常,确保可以运行!放心下载使用。 该项目资源主要针对计算机、自动化等相关专业的学生或从业者下载使用,也可作为期末课程设计、课程大作业、毕业设计等。 具有较高的学习借鉴价值!基础能力强的可以在此基础上修改调整,以实现类似其他功能。 在 Linux 环境下基于 muduo 开发的集群聊天服务器。实现新用户注册、
用户登录
、添加好友、添加
群组
、好友通信、
群组
聊天、保持离线消息等功能。 ## 项目特点 - 基于 muduo 网络库开发网络核心模块,实现高效通信 - 使用第三方 JSON 库实现通信数据的序列化和反序列化 - 使用 Nginx 的 TCP 负载均衡功能,将客户端请求分派到多个服务器上,以提高并发处理能力 - 基于发布-订阅的服务器中间件redis消息队列,解决跨服务器通信难题 - 封装 MySQL
接口
,将用户数据储存到磁盘中,实现数据持久化 - 基于 CMake 构建项目 ## 必要环境 - 安装`boost`库 - 安装`muduo`库 - 安装`Nginx` - 安装`redis` ## 构建项目 创建数据库 ```shell # 连接MySQL mysql -u root -p your passward # 创建数据库 create database chat; # 执行数据库脚本创建表 source chat.sql ``` 执行脚本构建项目 ```shell bash build.sh ``` ## 执行生成文件 ```shell # 启动服务端 cd ./bin ./ChatServer 6000 ``` ```shell # 启动客户端 ./ChatClient 127.0.0.1 8000 ``` ## 业务模块设计 ### 注册模块 我们从网络模块接收数据,根据 `MSGID` 定位到注册模块。从传递过来的 `json` 对象中获取用户 ID 和用户密码。并以此生成 `User` 对象,
调用
model 层方法将新生成的 `User` 插入到数据库中。 ### 登录模块 从 `json` 对象中获取用户ID和密码,并在数据库中
查询
获取用户
信息
是否匹配。如果用户已经登录过,即 `state == "online"`,则返回
错误
信息
。登录
成功
后需要在改服务端的用户表中记录登录用户,并显示该用户的好友列表和
收到
的离线消息。 ### 客户端异常退出模块 如果客户端异常退出了,我们
会
从服务端记录用户连接的表中找到该用户,如果它断连了就从此表中删除,并设置其状态为 `offline`。 ### 服务端异常退出模块 如果服务端异常退出,它
会
将所有在线的客户的状态都设置为 `offline`。即,让所有用户都下线。异常退出一般是 `CTRL + C` 时,我们需要捕捉信号。这里使用了 Linux 的信号处理函数,我们向信号注册回调函数,然后在函数内将所有用户置为下线状态。 ### 点对点聊天模块 通过传递的 `json` 查找对话用户 ID: - 用户处于登录状态:直接向该用户发送
信息
- 用户处于离线状态:需存储离线消息 ### 添加好友模块 从 `json` 对象中获取添加登录用户 ID 和其想添加的好友的 ID,
调用
model 层代码在 friend 表中插入好友
信息
。 ###
群组
模块 创建
群组
需要描述
群组
名称,
群组
的描述,然后
调用
model 层方法在数据库中记录新
群组
信息
。 加入
群组
需要给出用户 ID 和想要加入
群组
的 ID,其中
会
显示该用户是
群组
的普通成员还是创建者。
群组
聊天给出
群组
ID 和聊天
信息
,群内成员在线
会
直接接
收到
。 ## 使用Nginx负载均衡模块 ### 负载均衡是什么 假设一台机器支持两万的并发量,现在我们需要保证八万的并发量。首先想到的是升级服务器的配置,比如提高 CPU 执行频率,加大内存等提高机器的物理性能来解决此问题。但是单台机器的性能毕竟是有限的,而且也有着摩尔定律也日已失效。 这个时候我们就可以增加服务器的数量,将用户请求分发到不同的服务器上分担压力,这就是负载均衡。那我们就需要有一个第三方组件充当负载均衡器,由它负责将不同的请求分发到不同的服务器上。而本项目,我们选择 `Nginx` 的负载均衡功能。
用C#开发与RTX应用相关联的软件
现在各单位为了安全保密,引进RTX作为内部文件传输、对话平台,如何将现有的系统进行系统改造使之与RTX集成,就是我要解决的问题。
RTXC 插件开发指南 Step by step
开发桌面的rtx插件,rtx是目前比较主流的企业内部即时通信工具,但由于其客户端插件开发只支持用VC++开发,这份资料是腾讯的官方资料,上传上来以便有意开发rtx客户端插件的伙伴参考
IOS融云IM不错Demo源码
IOS融云IM不错Demo源码,值得学习下载
Messendger_API
NeoChat 1.0的API
eLTE
104
社区成员
26
社区内容
发帖
与我相关
我的任务
eLTE
宽带集群开发
复制链接
扫一扫
分享
社区描述
宽带集群开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章