iOS使用socket实现聊天功能

iOS使用socket实现聊天功能,第1张

关于GCDAsyncSocket实现即时通讯功能

客户端需要做的:

1、连接服务器,连接socket,发送心跳

2、编码数据包,发送消息给服务器

3、接收处理服务器返回的消息

4、提供手动断联socket方法,在需要的地方调用

5、socket非手动断联,重新请求连接

服务端需要做的:

1、用户心跳的维持和刷新

2、用户的调用

3、数据包的拆解和分发等

新建socket管理类BLSocketManager

.h文件

.m文件

大概说一下流程

KGSocket 就是前两篇写的那个通信库,就不多说了

服务端

ChatSession继承了KGSocket的KGNetSession<T> 用于会话管理的

ChatServe继承了KGSocket的KGSocketServe<T,R>创建服务器,处理任务 还有业务逻辑调用

ChatDatasPack 主要用于分辨消息是哪个客户端发定义的数据类

流程

ChatServeStartCreate()创建了服务器 每连进来一个客户端就会增加一个ChatSession会话管理,ChatSession 会话收到客户端发过来的指令 会添加到ChatServe的DataPackQue 任务队列进行排序处理 返回给客户端消息

客户端

GameRoot 处理业务逻辑 连接/发送消息给服务器 UI管理都在这 =。=示例凑合写懒得区分了

ChatNetSession继承了KGSocket的KGNetSession<T> 用于会话管理的ImageExtension扩展工具类 就图片与Byte之前的互相转换用的

流程

GameRoot.StartCreate()连接服务器 InItClickEvent() UI的按钮事件绑定都在这里了 登录会发送指令过去服务器,在ProcessNetData()这里进行处理在服务器接收到的消息 调用业务逻辑,

工程地址 https://github.com/LKaiGuo/KGNetSocket 喜欢给个星星啊啊啊啊啊啊

u3d萌新QQ群844087555 欢迎进来灌水=。=


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/280366.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存