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

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

开发者学堂课程【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)发送给客户端

相关文章
|
消息中间件 NoSQL Java
别再用 Redis List 实现消息队列了,Stream 专为队列而生
别再用 Redis List 实现消息队列了,Stream 专为队列而生
257 0
|
存储 NoSQL Redis
11- Redis 和 Memcached 的区别有哪些?
Redis与Memcached的主要区别在于:Redis提供复杂数据结构和丰富的操作,而Memcached只支持简单字符串;Redis原生支持集群,Memcached不支持;Memcached数据无法持久化,重启会丢失,但Redis支持持久化并能在重启后恢复数据。
228 12
|
人工智能 搜索推荐
AIGC时代,人人都可以创建自己的“品牌”服装
AIGC时代,人人都可以创建自己的“品牌”服装
202 1
AIGC时代,人人都可以创建自己的“品牌”服装
|
存储 人工智能 开发者
比GPT-4快18倍,世界最快大模型Groq登场!
【2月更文挑战第2天】比GPT-4快18倍,世界最快大模型Groq登场!
290 3
比GPT-4快18倍,世界最快大模型Groq登场!
|
Java
Servlet 教程 之 Servlet 生命周期 1
Servlet生命周期包括初始化、服务和销毁三个阶段:init()方法在Servlet创建时调用,仅初始化一次;service()方法处理客户端请求,每次请求都创建新线程;destroy()方法在Servlet销毁前执行。Servlet实例在首次请求时创建,可通过配置在服务器启动时加载。init()方法用于设置一次性初始化数据。
181 3
|
搜索推荐 图形学
实时云渲染技术下的虚拟汽车展厅 为什么越来越受青睐?
实时云渲染技术下的虚拟汽车展厅 为什么越来越受青睐?
|
XML Java 数据格式
struts2+spring+mybatis整合小案例
最近学习ssm框架,模仿别人做了一个小案例 当然途中也遇到了蛮多的问题.借此机会.记录一下自己的过程 struts2+spring+mybatis的整合过程 1.说明: 个人采用的是deepin操作系统(深度linux)+Intellij Idea(相对与myeclipse我还是更喜欢idea 可能因为更智能)+tomcat7. 当然在windows下没什么不同,具
4386 0
|
关系型数据库 MySQL 测试技术
软件测试mysql面试题:编写命令以从“玩家”表中删除所有名为Sachin的玩家。
软件测试mysql面试题:编写命令以从“玩家”表中删除所有名为Sachin的玩家。
97 0
数据库云HBase 版本spark服务支持D1机型
信息摘要: 数据库云HBase 版本spark服务支持D1机型,适合起步超过20T数据库的大客户,每GB存储单价最低。适用客户: 大企业版本/规格功能: spark支持D1机型产品文档: 数据库云HBase 版本spark服务支持D1机型,具体spark服务参考https://help.
768 0
|
运维 Android开发 iOS开发
盘点抖音源码中的广告变现方式
抖音还上线过其他变现方法,比如它的广告功能,抖音的广告功能有以下几种