欢迎光临散文网 会员登陆 & 注册

skynet简单上手

2023-02-24 13:03 作者:伪乱  | 我要投稿

只是个人熟悉skynet的一个流程

首先得知道skynet的运行的核心组件

1、service

2、lib

服务分为c服务和lua服务

lib也是一样的。


服务之间通信是基于消息的。

详细的介绍可以看这篇文章http://manistein.club/post/server/skynet/skynet%E6%BA%90%E7%A0%81%E8%B5%8F%E6%9E%90/

同时结合官方文档的介绍。

接着我们讲一讲与客户端通信的原理

1、gate服务初始化

    然后初始化消息处理函数

2、gate监听端口

3、客户端请求连接服务器

4、由消息处理机制接受来自socket的连接消息,

5、watchdog新建agent,agent要求gate开始接受连接的数据

6、gate收到客户端的data,data由netpack.filter进行分包和粘包处理后,交给agent来解析,并执行相应的逻辑。


这里顺便讲一下socket的信息处理。

socketdriver是异步的。会把结果以PTYPE_SOCKET的形式发出。谁调用了start(fd) api谁就会接受到这个消息。

但是由于异步不好用,所以由提供了一个阻塞式的端口。

这样就比较好理解了。

初级的使用,就是使用lua来做module和service。高级一些,就可以把计算步骤放在c侧,写cservice和clib。

再高级一些,就是把skynet的多线程实现看明白。


当然了,service怎么调用,lib怎么写。skynet怎么注册服务。就是很基础的东西,简单,但是也需要花一些时间去熟悉。

skynet简单上手的评论 (共 条)

分享到微博请遵守国家法律