惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

GbyAI
GbyAI
J
Java Code Geeks
雷峰网
雷峰网
WordPress大学
WordPress大学
宝玉的分享
宝玉的分享
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
V
Vulnerabilities – Threatpost
S
Securelist
The Hacker News
The Hacker News
The Register - Security
The Register - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Help Net Security
Help Net Security
G
Google Developers Blog
Hugging Face - Blog
Hugging Face - Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
M
MIT News - Artificial intelligence
AI
AI
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Schneier on Security
Schneier on Security
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
Hacker News - Newest:
Hacker News - Newest: "LLM"
H
Hacker News: Front Page
博客园 - 司徒正美
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
B
Blog
Microsoft Azure Blog
Microsoft Azure Blog
大猫的无限游戏
大猫的无限游戏
Security Latest
Security Latest
Engineering at Meta
Engineering at Meta
N
News and Events Feed by Topic
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
酷 壳 – CoolShell
酷 壳 – CoolShell
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
U
Unit 42
V
V2EX
V2EX - 技术
V2EX - 技术
L
LINUX DO - 最新话题
aimingoo的专栏
aimingoo的专栏
Microsoft Security Blog
Microsoft Security Blog
Recorded Future
Recorded Future
P
Privacy & Cybersecurity Law Blog
美团技术团队
小众软件
小众软件
F
Fortinet All Blogs

博客园 - gxh973121

Windbg在Managed App中设置函数断点的几种方法 找不到资产文件 project.assets.json windows 2008 VPN(PPTP/L2TP)搭建 - gxh973121 vs 调试时 QuickWatch 不能计算变量值 wireshark 分析过滤数据 go module 设置 逻辑漏洞之支付漏洞 java holdsLock()方法检测一个线程是否拥有锁 c#编程指南(十) 平台调用P-INVOKE完全掌握, 字符串和指针 Git过滤文件和文夹 VC CComboBox用法总结 WideCharToMultiByte和MultiByteToWideChar函数的用法 c++ 时间类型详解 time_t 链接报error LNK2019: unresolved external symbol错误,解决 VS2008 工程只生成dll不生成lib的解决方案 vs2010中的MSBuild输出warning MSB8012问题 在VS2010下编译和使用tesseract_ocr识别验证码 tesseract-ocr 提高验证码识别率手段之---识别码库训练方法 Windows下Qt5搭建Android开发环境笔记
TeamTalk---服务端架构
gxh973121 · 2022-04-23 · via 博客园 - gxh973121

1 概略介绍
TTServer主要包含了以下几种服务器:

LoginServer (C++): 登录服务器,分配一个负载小的MsgServer给客户端使用
MsgServer (C++): 消息服务器,提供客户端大部分信令处理功能,包括私人聊天、群组聊天等
RouteServer (C++): 路由服务器,为登录在不同MsgServer的用户提供消息转发功能
FileServer (C++): 文件服务器,提供客户端之间得文件传输服务,支持在线以及离线文件传输
MsfsServer (C++): 图片存储服务器,提供头像,图片传输中的图片存储服务
DBProxy (JAVA): 数据库代理服务器,提供mysql以及redis的访问服务,屏蔽其他服务器与mysql与redis的直接交互


2 当前支持的功能点:
私人聊天
群组聊天
文件传输
多点登陆
组织架构设置
3 代码结构:


1.Base文件夹:
主要封装一些服务端需要使用的基础库,主要包括Json库,线程库(线程,线程池),网络库(Soket封装,事件分发),文件处理库(buf管理,配置文件解析类)等需要经常使用的基础库。

2.db_proxy_server文件夹
数据库管理模块(服务器),用来管理数据库,接受msg_server发送的消息,进行数据库操作,操作完成后返回给msg_server。

3.file_server文件夹:
文件操作模块(服务器),件服务器,提供客户端之间得文件传输服务,支持在线以及离线文件传输

4.login_server文件夹
一台负载均衡服务器,用来通知客户端连接到负载最小的msg_server,在整个TT的架构中,可以简单的理解为一个负载均衡的作用,在login_server中,同样在内存中维护了所有的msg_server的地址以及其目前的负载情况。

5.route_server文件夹
一台消息转发服务器,客户端消息发送到msg_server。msg_server判断接收者是否在本地,是的话,直接转发给目标客户端。否的话,转发给route_server,route_server接收到msg_server的消息后,获取to_id所在的msg_server,将消息转发给msg_server。msg_server再将消息转发给目标接收者。

----- route_server在整个tt中的作用是一个消息转发的地方,其在内存中维护了全局用户信息。当有多个msg_server的时候,route_server的作用就是在多个 msg_server之间中转消息。

-----g_rs_user_map是一个hash_map,保存了全局用户信息,当有用户上线的时候,msg_server会将该用户的状态发送到route_server,route_server就会在g_rs_user_map里面插入一条记录。

6.msg_server文件夹
客户端连接服务器(N台)。客户端通过msg_server登陆,保持长连接。

-----msg_server启动后会去主动连接login_server,并通过数据包CImPduMsgServInfo向login_server注册自己的信息。

-----当有用户连接上msg_server并登录成功或者用户断开连接的时候,会向login_server发送一个CImPduUserCntUpdate数据包通知login_server ,login_server收到后,修改对应msg_server的负载值。

-----当有用户连接上msg_server并登录成功或者用户断开连接的时候,会向route_server发送一个CImPduUserStatusUpdate数据包通知route_server,route_server记录用户的msg_server,msg_server启动后会去主动连接route_server,并通过数据包CImPduOnlineUserInfo向route_server报告自己当前在线的用户情况。

7.file_server文件夹
文件服务器,提供客户端之间得文件传输服务,支持在线以及离线文件传输
————————————————
版权声明:本文为CSDN博主「eerstar」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/eerstar/article/details/51289692