找回密码
 注册帐号

扫一扫,访问微社区

Unity 【Unity3D_常用模块】 Socket网络模块(超级详细完整,上线项目中稳定使用着)

39
回复
6620
查看
[ 复制链接 ]
排名
39866
昨日变化

1

主题

22

帖子

62

积分

Rank: 2Rank: 2

UID
212472
好友
0
蛮牛币
561
威望
0
注册时间
2017-3-20
在线时间
33 小时
最后登录
2021-2-3
2019-4-12 09:58:27 显示全部楼层 阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x

Socket网络连接模块

转自:https://blog.csdn.net/a1047120490/article/details/73904492

主要分为四部分:

一、套接字管理器(SocketManager.cs)

1)、连接



2)、断开


3)、接收(线程)



4)、发送(携程)

1.发送消息基本方法

2.二进制方式发送

        

3.protobuf方式发送

        



二、消息中心:(MessageCenter.cs)

1)、游戏逻辑事件
a.事件缓存:
1.事件类型对应的数据缓存队列:_gameLogicDataQueue
2.事件类型对应的执行函数:_gameLogic_EventList
b.相关函数:
1.添加事件监听:AddEventListener(eGameLogicEventType _eventType, Callback_GameLogic_Handle _callback)2.移除事件监听:RemoveEventListener(eGameLogicEventType _eventType, Callback_GameLogic_Handle _callback)
3.推送、触发事件:PostEvent(eGameLogicEventType _eventType, object data = null)

2)、网络数据事件(线程)
a.事件缓存:
1.事件类型对应的数据缓存队列:_netMessageDataQueue
2.事件类型对应的执行函数:_netMessage_EventList
b.相关函数:
1.添加事件监听:addObsever(eProtocalType _protocalType, Callback_NetMessage_Handle _callback)
2.移除事件监听:removeObserver(eProtocalType _protocalType, Callback_NetMessage_Handle _callback)
3)、运行流程
a.创建单例:MessageCenter.Instance
b.循环检测:


三、数据封装:

1)、网络数据缓冲器(DataBuff.cs)自动Size

a.参数定义:



2.添加数据到缓存中


3.从缓存中取出一条完整数据




2)、二进制字节流(ByteStreamBuff.cs)
在和服务器做数据交互的时候,最终要把数据转化成byte[],传给服务器。
如:

要将这些数据传给服务器,怎么变成byte[]数组呢?这里就要做一个数据封装。所有数据都是可以变成byte或byte[]来表示,要做的其实就是把这些数据拼成一个byte[]。

一般都是,顺序存,顺序取。

如:
写入:

读取:


这里已经对SendMsg做的重载,故直接传入,ByteStreamBuff或者,protobuf数据即可,SocketManager在发送前会转换为Byte[],再发送出去。

很多对数据的二进制封装的方法都是用byte[] 来做缓存媒介,所以在没事new 的时候,都要先给这个数据封装器,定一个大小,为了省事,所以这里用Stream作用缓存媒介。还有就是在封装器中有一个flip()函数,这里要再说一下,就是系统的大小端问题,如果前端是大端系统,后端是小端系统在数据交互的时候就会出问题了。细节就不解释了,百度(系统大小端)就可以了,不难理解的。

3)、谷歌ProtoBuffer序列化

a.现在手游这个用的很火。方便快捷,压缩效率也要。主要就是两个函数,序列化,反序列化。这个两方法封闭在SocketManager.cs中。

b.序列化


c.反序列化




四、简单流程图


Unity Socket.txt

69 Bytes, 下载次数: 224

售价: 10 蛮牛币  [记录]

源码链接

回复

使用道具 举报

7日久生情
3091/5000
排名
2225
昨日变化

1

主题

2024

帖子

3091

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
119154
好友
0
蛮牛币
3647
威望
0
注册时间
2015-8-21
在线时间
436 小时
最后登录
2021-4-9
2019-4-30 10:38:17 显示全部楼层
谢谢楼主大大。
回复

使用道具 举报

7日久生情
1598/5000
排名
16592
昨日变化

1

主题

149

帖子

1598

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
281418
好友
0
蛮牛币
1510
威望
0
注册时间
2018-5-16
在线时间
1406 小时
最后登录
2021-1-17
2019-5-6 10:08:38 显示全部楼层
看看,感觉很厉害
回复

使用道具 举报

排名
17814
昨日变化

0

主题

18

帖子

87

积分

Rank: 2Rank: 2

UID
94967
好友
1
蛮牛币
138
威望
0
注册时间
2015-4-23
在线时间
33 小时
最后登录
2020-5-11
2019-5-6 20:20:06 显示全部楼层
厉害厉害,学习了
回复

使用道具 举报

排名
64952
昨日变化

0

主题

15

帖子

28

积分

Rank: 1

UID
252137
好友
0
蛮牛币
5
威望
0
注册时间
2017-11-2
在线时间
11 小时
最后登录
2019-7-2
2019-5-10 17:09:15 显示全部楼层
很有用,结构清晰
回复

使用道具 举报

4四处流浪
422/500
排名
24130
昨日变化

0

主题

190

帖子

422

积分

Rank: 4

UID
8
好友
0
蛮牛币
1
威望
0
注册时间
2013-5-27
在线时间
214 小时
最后登录
2021-3-30
2019-5-11 11:22:49 显示全部楼层
不错,支持一下
回复

使用道具 举报

5熟悉之中
854/1000
排名
6016
昨日变化

4

主题

299

帖子

854

积分

Rank: 5Rank: 5

UID
146845
好友
3
蛮牛币
270
威望
0
注册时间
2016-4-26
在线时间
319 小时
最后登录
2021-2-8
2019-5-17 10:05:00 显示全部楼层
谢谢楼主 啦啦啦
回复

使用道具 举报

3偶尔光临
241/300
排名
10705
昨日变化

0

主题

47

帖子

241

积分

Rank: 3Rank: 3Rank: 3

UID
226066
好友
0
蛮牛币
0
威望
0
注册时间
2017-6-10
在线时间
96 小时
最后登录
2020-10-17
2019-5-18 14:28:35 显示全部楼层
看看 楼主好人
回复

使用道具 举报

6蛮牛粉丝
1346/1500
排名
3356
昨日变化

1

主题

76

帖子

1346

积分

Rank: 6Rank: 6Rank: 6

UID
148314
好友
0
蛮牛币
797
威望
0
注册时间
2016-5-11
在线时间
825 小时
最后登录
2021-3-23
2019-5-28 17:16:19 显示全部楼层
心跳包,TCP最重要得丢包断线,udp广播重连也没涉及居然要10个币?
回复 支持 反对

使用道具 举报

排名
39866
昨日变化

1

主题

22

帖子

62

积分

Rank: 2Rank: 2

UID
212472
好友
0
蛮牛币
561
威望
0
注册时间
2017-3-20
在线时间
33 小时
最后登录
2021-2-3
楼主 2019-6-10 11:01:13 显示全部楼层
本帖最后由 Lingjingxueyuan 于 2019-6-10 11:02 编辑

首先这只是思路,你觉得在真正的项目开发时会使用这么low的网络模块吗?第二,在介绍里明确列出了所有的模块,没有涉及分包粘包、断点续传,你要觉得不值,可以选择不看。@楼上那货
回复 支持 反对

使用道具 举报

0

主题

30

帖子

32

积分

Rank: 1

UID
315834
好友
0
蛮牛币
12
威望
0
注册时间
2019-3-8
在线时间
2 小时
最后登录
2019-6-16
2019-6-15 07:46:02 显示全部楼层
好东西,多分享哈!~
回复

使用道具 举报

6蛮牛粉丝
1010/1500
排名
5082
昨日变化

1

主题

193

帖子

1010

积分

Rank: 6Rank: 6Rank: 6

UID
237895
好友
0
蛮牛币
826
威望
0
注册时间
2017-8-16
在线时间
532 小时
最后登录
2021-4-10
2019-6-19 11:00:57 显示全部楼层
楼主的帖子,我只想说一句很好很强大!
回复 支持 反对

使用道具 举报

排名
64952
昨日变化

0

主题

7

帖子

9

积分

Rank: 1

UID
308347
好友
0
蛮牛币
7
威望
0
注册时间
2018-12-15
在线时间
2 小时
最后登录
2019-6-24
2019-6-20 20:51:01 显示全部楼层
厉害了  学习学习6666666666666666
回复 支持 反对

使用道具 举报

4四处流浪
379/500
排名
12143
昨日变化

0

主题

110

帖子

379

积分

Rank: 4

UID
128543
好友
0
蛮牛币
720
威望
0
注册时间
2015-11-11
在线时间
191 小时
最后登录
2021-4-6
2019-6-21 17:11:12 显示全部楼层
谢谢楼主的分享
回复

使用道具 举报

6蛮牛粉丝
1089/1500
排名
16953
昨日变化

2

主题

797

帖子

1089

积分

Rank: 6Rank: 6Rank: 6

UID
175005
好友
0
蛮牛币
1658
威望
0
注册时间
2016-10-12
在线时间
270 小时
最后登录
2021-3-13
2019-6-24 10:30:39 显示全部楼层

谢谢楼主分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

关注游戏蛮牛公众号送vip