摘要: 一、redis简介 ​ Redis(Remote Dictionary Server)是一个开源的内存数据结构存储系统,常用作数据库、缓存和消息中间件。它以高性能和丰富的数据结构支持而闻名,提供了字符串、哈希表、列表、集合、有序集合等多种数据结构。 ​ Redis主要特点包括: 内存存储:Redis 阅读全文
posted @ 2023-12-22 12:52 桂洛克船长 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 客户端如何处理注销登录问题? 问题描述: ​ 在客户端登录后进行注销选择,然后重新登录刚才注销的账号,直接卡死。注意这是概率发生,因为是主线程和子线程抢服务器发送的信息,只有子线程抢到才会发生卡死 问题产生原因分析: ​ 前置条件:主线程循环等待用户输入选择(第一张图是死循环,send后立马recv 阅读全文
posted @ 2023-12-20 11:23 桂洛克船长 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 一、引入redis队列 ​ 在上一篇博客里我们已经为服务器配置了基于nginx的tcp负载均衡,提高了服务器的并发量,但是相应的之前也会存在一个问题,那就是多个客户端可能连接在不同的服务器,那这几个客户端如何通信呢?这就需要引入这次的内容:redis中间件,我们通过redis来作为一个中间消息转发者 阅读全文
posted @ 2023-12-16 21:34 桂洛克船长 阅读(15) 评论(0) 推荐(0) 编辑
摘要: 一、客户端开发 代码如下: #include "json.hpp" #include <iostream> #include <thread> #include <string> #include <vector> #include <chrono> #include <ctime> #includ 阅读全文
posted @ 2023-12-10 20:46 桂洛克船长 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 第一章 一、什么是人工智能? ​ 模拟、延申、和拓展人类技能。 强人工智能:具备与人类同等或者超越人类智慧,能根据自己意图展开行动。 弱人工智能:面向特定的问题或任务,根据人类的经验知识,达到模拟人的效果。 应用领域:计算机视觉、自然语言处理NLP、人机博弈、认知推理等。 主要软件技术:数据采集技术 阅读全文
posted @ 2023-12-09 17:13 桂洛克船长 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 一、创建一个仓库 ​ 想要上传项目代码到github我们首先需要有一个GitHub账号,具体怎么注册自行搜索,然后我们需要创建一个仓库如图: ​ 如图我们创建一个公共仓库,写完名字,描述,和增加一个readme文件 二、密钥 ​ 直接使用命令后面是你的注册邮箱,选项直接回车就好。 ssh-keyge 阅读全文
posted @ 2023-12-02 18:25 桂洛克船长 阅读(95) 评论(0) 推荐(0) 编辑
摘要: 一、服务器异常处理函数 ​ 这部分主要处理服务器异常退出时,用户的在线状态还是online不会改变,因此需要修改。由于是需要对用户进行操作,因此我们在user表的数据操作类添加重置用户状态函数。 ​ 在usermodel.hpp添加后: #ifndef USERMODEL_ #define USER 阅读全文
posted @ 2023-12-01 21:22 桂洛克船长 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 一、客户端异常退出处理 ​ 在chatserviec层增加一个客户端异常退出的处理函数: ​ 因为要保证userConnMap的线程安全,因此在这里用一个智能锁来处理,在作用域结束后会自动释放资源。然后,更新数据库里的在线状态,由online修改为offline,测试效果如图: ​ 登录成功: ​ 阅读全文
posted @ 2023-11-29 10:55 桂洛克船长 阅读(11) 评论(0) 推荐(0) 编辑
摘要: ​ 这部分的主要业务逻辑是网络层获取到json文件解析后,调用注册好的登录事件回调函数login,然后获取id和密码,通过查询是否在数据库里判断下一步业务,然后更新其在数据库里的在线在线状态,处理错误。因此,需要在对user表操作的类添加查询以及更新函数。 一、用户登录代码 ​ 将chatservi 阅读全文
posted @ 2023-11-28 10:33 桂洛克船长 阅读(7) 评论(0) 推荐(0) 编辑
摘要: ​ 总体项目结构如下: 一、数据库的封装 ​ db.h如图代码量不多 ​ db.cpp: #include "db.h" #include <muduo/base/Logging.h> // 数据库配置信息 static string server = "127.0.0.1"; static str 阅读全文
posted @ 2023-11-27 11:24 桂洛克船长 阅读(6) 评论(0) 推荐(0) 编辑