首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
集群聊天服务器
_小菜鸟
创建于2023-01-29
订阅专栏
无
等 1 人订阅
共16篇文章
创建于2023-01-29
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
添加好友业务代码和测试
1. 在include/public.hpp中添加加好友消息类型 2. 数据库层 用户登陆成功会把其好友列表返回回去,实际上好友列表一般是基于客户端的,因为好友列表信息一般比较多,如果每次用户登陆成功
服务器异常退出处理代码和测试
之前我们完成了客户端异常退出的处理代码,客户端异常退出是因为它没有发出json字符串连接就断开了,服务器检测到连接断开后需要删除_userConnMap中用户对应的connection以及更改user
离线消息业务代码和测试
当用户收到消息时,若该用户不在线,则需要将消息存到离线消息表,服务器待用户上线后转发消息 1. 创建offlinemessagemodel.hpp 在include/server/model下创建文件
点对点聊天业务代码和测试
我们先在public.hpp中添加一对一聊天消息类型ONE_CHAT_MSG 用户用name和password注册成功,服务器返回注册成功的用户id,用户就可以使用id和password登录。当用户之
处理客户端异常退出业务代码和测试
我们要处理一下客户端的异常退出,客户端在没有任何响应的情况下,直接异常退出了,它在目前的代码下,退出没有合法的json字符串请求,而只是网络连接断开了,我们需要修改用户的状态为offline 1. 修
保存用户的连接信息和线程安全问题
聊天服务器必须是长连接服务器,因为不仅仅是客户端请求,还有服务器主动推送消息到客户端。 所以我们拿到用户2的id号,需要获取这个用户和服务器的连接connection,我们在业务层要想办法,一个用户一
用户登录业务代码和测试
1. 完善include/public.hpp 2. 完善include/server/model/usermodel.hpp 3. 完善include/server/model/usermodel.
用户注册业务代码和测试
数据库的操作和业务代码分离开,在业务层只能看到对象,看不到数据库的操作。我们要定义一些相关的ORM类,和数据库的表一一对应的,才能把数据库读出来的字段合成一个对象提供给业务层使用 我们在inlcude
MySQL数据模块搭建
如果把业务层代码和数据模块代码掺杂到一块,如果将来不想在MySQL上存储了,想直接全部存储在redis上,那么业务模块代码就需要大量改动。 ORM(Object Relation Map)对象关系映射
ChatServer网络模块代码、业务模块代码和网络模块耦合度降级处理
这个项目包含了开发服务器的网络模块、业务模块和数据模块(数据库)。 一、网络模块代码 首先,我们在include下的server下创建头文件:chatserver.hpp 接下来我们在src下的ser
集群聊天服务器项目工程的构建
项目工程目录 聊天服务器程序和客户端程序都在一个工程里面,最后在bin生成2个可执行文件,一个是ChatServer,一个是ChatClient 1. 项目根目录下的CMakeLists.txt 执行
MySQL环境搭建和项目表的设计
一、MySQL环境安装设置 ubuntu环境安装mysql-server和mysql开发包,包括mysql头文件和动态库文件,命令如下: ubuntu默认安装最新的mysql,但是初始的用户名和密码是
CMake构建集成编译环境
一. CMake简介 使用方便,可以跨平台,构建项目编译环境,尤其比直接写Makefile简单(在构建大型工程编译时,需要写大量的文件依赖关系),可以通过简单的CMake生成负责的Makefile文件
muduo网络库的多线程模型
一、网络服务器编程常用模型 【方案1】:accept + read/write,不是并发服务器 【方案2】:accept + fork - process-pre-connection,适合并发连接数
Json介绍和使用
--- theme: awesome-green highlight: a11y-dark --- # 一. Json介绍 Json是一种轻量级的数据交换格式(也叫数据序列化格式)。Json采用完全独
基于muduo和nginx的集群聊天服务器项目
一、 项目介绍 在C++项目中比较热点的就是高并发网络服务,聊天服务应用场景比较简单(局域网的聊天),在这里我们先做一个单机版本的(即一个聊天服务器),为了扩充聊天服务器的能力,使它可以提供给更多用户