海量用户通讯系统-收发消息分析|学习笔记

简介: 快速学习海量用户通讯系统-收发消息分析

开发者学堂课程【Go 语言核心编程 - 面向对象、文件、单元测试、反射、TCP 编程:海量用户通讯系统-收发消息分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/626/detail/9798


海量用户通讯系统-收发消息分析

 

内容介绍:

一、完成用户登录-服务器端

二、完成用户登录-客户端

三、发送数据的流程

四、接收数据的流程

 

一、完成用户登录-服务器端

多人聊天室的一个结构分析,有以下图示可以看到:

image.png

服务器

(1)接收用户id,pwd【goroutine】

(2)比较

(3)返回结果

 

二、完成用户登录-客户端

(1)接收的输入的 id 和 pwd

(2)发送 id 和密码

(3)接收到服务端返回的结果

(4)判断是成功还是失败,并显示对应的页面

 

三、发送的流程

如图示需要设计消息协议

image.png

(1)先创建一个 Message 的结构体

(2)mes.Type=登录消息类型

(3)mesData=登录消息的内容(序列

(4)对 mes 进行序列化

(5)在网络传输中,最麻烦丢包

先给服务器发送 mes 的长度[有多少个字节n],再发送消息本身

image.png

 

四、接收数据的流程

(1)接收到客户端发送的长度 len

(2)根据接收到的长度 ien,在接收消息本身

(3)接收时要判断实际接收到的消息内容是否等于 len

(4)如果不相等,就有纠错协议[后面说]

(5)取到到-反序列化>Message

(6)取出 messageData(string)-反序列化>LoginMes

(7)取出 loginMes.userid和loginMes.userPwd

(8)这时就可以比较

(9)根据比较结果,返回Mess

(10)发送给客户端

相关文章
|
3月前
|
程序员 数据库 UED
微信也在用的消息时序性技术,你知道多少?
本文由程序员小米撰写,探讨了在个人项目中如何保证消息的时序性。文章详细介绍了消息时序性的概念及其重要性,并提出了三种方案:ID设计(借鉴微信号段与跳跃式生成)、单聊场景下的单点序列化同步,以及群聊场景中的单点序列化处理。此外,还提供了多种优化方法,如消息时序对齐、本地时序记录等,帮助读者更好地解决消息乱序问题。适合所有关心即时通讯和社交应用技术细节的开发者阅读。
61 4
|
3月前
|
网络协议 程序员 UED
如何确保单聊消息100%送达?揭秘消息可靠传输的核心机制!
哈喽,大家好!我是技术好朋友小米,今天聊聊单聊消息的可靠传输。通过TCP的超时、重传、确认机制,结合去重和离线消息优化,我们可以设计出高效、可靠的消息传输系统。希望今天的分享能给大家带来帮助!如果有问题,欢迎留言交流。
58 0
如何确保单聊消息100%送达?揭秘消息可靠传输的核心机制!
|
JSON 安全 前端开发
得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现
本文将探秘得物自研客服IM中收发聊天消息背后的技术逻辑和思考实现,帮助大家了解如何在IM聊天场景中提供高效、安全、可靠和良好的用户体验。
86 0
|
网络协议 前端开发 测试技术
海量用户通讯系统——服务端结构改进1|学习笔记
快速学习海量用户通讯系统——服务端结构改进1
海量用户通讯系统——服务端结构改进1|学习笔记
|
JSON 网络协议 测试技术
海量用户通讯系统-服务器接收消息2|学习笔记
快速学习海量用户通讯系统-服务器接收消息2
海量用户通讯系统-服务器接收消息2|学习笔记
|
网络协议 测试技术 Go
海量用户通讯系统-服务器接收消息1
海量用户通讯系统-服务器接收消息1
海量用户通讯系统-服务器接收消息1
|
网络协议 测试技术 Go
海量用户通讯系统——客户端结构改进1|学习笔记
快速学习海量用户通讯系统——客户端结构改进1
海量用户通讯系统——客户端结构改进1|学习笔记
|
JSON 网络协议 测试技术
海量用户通讯系统-项目小结|学习笔记
快速学习海量用户通讯系统-项目小结
海量用户通讯系统-项目小结|学习笔记
|
JSON 编解码 网络协议
海量用户通讯信息-服务器接收长度|学习笔记
快速学习海量用户通讯信息-服务器接收长度
海量用户通讯信息-服务器接收长度|学习笔记
|
NoSQL 网络协议 关系型数据库
海量用户通讯系统-完成界面|学习笔记
快速学习海量用户通讯系统-完成界面
海量用户通讯系统-完成界面|学习笔记