skynet简单上手
只是个人熟悉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怎么注册服务。就是很基础的东西,简单,但是也需要花一些时间去熟悉。