集群聊天项目

不懂的一些东西

(const TcpConnectionPtr&)作为形参啥意思:接收一个常量引用,函数内部不允许修改该指针所指向的对象。

客户端与服务器如何联系?

优势

1.网络层与业务层分离:通过网络层传来的id,设计一个map存储id以及对印的业务处理器,处理器bind绑定处理函数,直接分离根据id调用业务即可

2.这里传入的是user对象而不是sql语句,很方便4b6386f0ce7347cda0a3b08a6fec583c.png

概述

网络层---业务层---数据层

mudou库和libevent二选一

流程:客户端输入,整理成json发送给服务器,服务器运用了moduo网络库,客户端send触发muduo,服务器初始化了绑定器,根据客户端发来的信息决定用哪些回调函数。(这里特色是public.hpp,即让客户端输入msgid=1,服务器触发)

14df50f9088b413db6226c9ede228d83.png

57b308c8320045aeb2bf205e5d1ff68e.png

ffb577ea91524b9ab7b18433bf2aab20.png

JSON介绍

174c62fd6b704ca2a305ec7aea2f3210.png

63698c594edf4209aecc64231aa88c7a.png

b167400e1e8f4578923e278d1698dfae.png

2c025cbc0e444af59ab8d46a4aefeb8a.png

muduo网络库

cf78b66906684c74821c3e644ca4e61a.png

回声服务器

3e0d80f3f8924769b8cbcc600d96ca6a.png

8d85a76a8897415db79407354f85b936.png

a66bc95b5f7a4cb38e32e96e070e3b3d.png

8abd5d4ddb9140f1964e36da05eb7a99.png

a775ddc93bdf4f3aa92c6c5a7b93942e.png

客户端实现

9ffad64c7c224674aeebbdfe64be0efa.png

9a38a0781e7049ea85a72bd901395c74.png

muduo中的线程池做计算任务

e0992f5f81434bfd84fe4aed237a5726.png

moduo网络库的多线程模型

网络服务器模型

bae3f6ba12174942ac30bf6fe6fcbb8b.png

47218bcdd3a64903b8d951def785db9b.png

moduo中的reactor模型

26cda6d4649f4df294d6317e3ffcc05b.png

b891ba87d6694883bb22d54fd3c0a5a4.png

cmake

项目数据库以及表的设计

48781abdec5148cd80abe4d325414845.png

c4577c43d6bd4719b45dca84af647ccb.png

8e841250c9c544659296c7b0ede696fb.png

集群项目聊天工程目录创建

aa28edb736db40debe1ea92abdbbf800.png

22288d83833e4379ad9e8ec2ac737b8c.png

8cf5123f714e4ab8b7b9bc2861c5c7dc.png

b06763a7c8b1455f9313293d9ec94405.png

网络模块代码

0ef2b7233c184e528ffde6d5e7734f3c.png

f5283c52a47945b4aa58a86ff3911272.png

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-19 16:44:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-19 16:44:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-19 16:44:02       82 阅读
  4. Python语言-面向对象

    2024-02-19 16:44:02       91 阅读

热门阅读

  1. Pytorch-SGD算法解析

    2024-02-19 16:44:02       62 阅读
  2. Python如何用双重循环输出金字塔?

    2024-02-19 16:44:02       49 阅读
  3. 编程笔记 Golang基础 006 Goland开发环境搭建

    2024-02-19 16:44:02       64 阅读