Skynet框架中网络消息处理与拆包粘包解决方案.pdfVIP

  • 0
  • 0
  • 约9.96千字
  • 约 10页
  • 2026-10-16 发布于北京
  • 举报

Skynet框架中网络消息处理与拆包粘包解决方案.pdf

零声教育老师

再聊Actor

调度

课上讲解

socket.lua封装

加载socket.lua的服务,就具备了处理网络消息的能力,skynet_callback设置服务的回调函

数,在回

调函数中可以设置不同类型的子回调;如图:在socket.lua设置了socket

类型的处

理方法;pack

指

定发送数据的压缩方法,unpack

指定接收数据的解压缩的方法(unpack

的参数为msg,

sz

),dispatch

指定处理消息的方法,它的参数来自于unpack

的返回值;

处理不同类型的网络消息;此时需要重点,

如何处理拆包和粘包问题socket_message

首先需要有一个读缓冲区缓存网络发送过来的数据;在

lua-socket.c中封装了

缓冲区

对象操作接

口,用来缓存网络数据包,并且封装了

套接字

的

输入输出

操作接口;

1

‑‑

SKYNET_SOCKET_TYPE_DATA

=12

socket_message[1]=函数(id,

size,

data)

...

结束

3

‑‑

SKYNET_SOCKET_TYPE_CONNECT

=24

socket_message[2]=函数

文档评论(0)

1亿VIP精品文档

相关文档