【极】P3-2 网络消息处理_通讯与协议(服务端通信)

前言

客户端链接完成并发出请求信息后,当然就要来到服务端的接收和处理,下面将会演示服务的接收处理流程,照之前一样 不一头扎进底层看源码,只是看是有什么效果提供什么功能,会用就行。


一、处理从客户端发送的信息

前情提要之前的文章的结尾 客户端向服务端发送了信息
在这里插入图片描述

1.服务端Common库 调用PackageHandler类的封包处理器

ReceiveData() 通过数据流来接收
if(stream.Position+count>stream.Capacity) 接收后判断是否超容量
stream.Write() 没有就写入到流里

在这里插入图片描述

ParsePackage()调用同类下的数据包解析方法
SkillVridge 协议专用类

在这里插入图片描述

2.消息分配处理

Dispath() 分配响应 给客户端用
if() 各个if判断位分发各个消息

Dispatch() 分配请求 给服务端用
如上

在这里插入图片描述

3.消息分发器

在这里插入图片描述
主要是两个方法
在这里插入图片描述

客户端是用了单线程的分发,服务端为了效率和性能使用了多线程的分发

在这里插入图片描述

客户端和服务端的链接都是使用的网络对象
服务端涉及到监听和接收然后再是数据的触发,因为一个消息传过来要先判断是否有人链接服务器

4.服务端链接

TcpSocetListener

在这里插入图片描述
在这里插入图片描述

二、服务端与客户端的通信

服务端的网络文件夹
在这里插入图片描述

1.ExtensionMethods

类似于JAVAWEB的切面编程,主要用途是扩展类的功能

2.NetConnection

网络链接类,客户端链接到客户端都会创建一条通信,用来存储链接的信息
在这里插入图片描述

3.NetService

抛开网络的底层链接之外的主入口,也是提供项目所有的网络服务
先是Init初始化,创建一个监听器,位监听器提供一个监听事件OnsocketConnected
在这里插入图片描述
Start() 开启消息分发器的八个线程
Stop() 关闭消息分发器及所有线程

在这里插入图片描述

4.NetSerssion 网络会话数据的定义

为项目实体类的数据
在这里插入图片描述

5.NetEventArgs 网络数据包的定义

在这里插入图片描述

三、服务端管理客户端服务的 Service文件夹

在这里插入图片描述

1.作为例子的 UserService类

在这里插入图片描述
因此 假设客户端发送了登录的消息过来,此类就会将其订阅并执行对应的方法
在这里插入图片描述

总结

只是草草的大概了解各个方法的作用已经大概的通信流程,还是有些许纰漏,在之后的时间我还会继续更新此文章。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值