前言:skynet 是一个为网络游戏服务器设计的轻量框架。当然,它并不只是用于游戏服务器框架,不过,作为一个游戏开发者,自然是把skynet当做一个游戏服务框架来看待,更何况我是一个后台服务器开发的程序员。下面的我们的讨论都是围着游戏服务器框架来进行讨论,这也是我学习和使用它的原因。
前面的文章有讲到skynet的目录结构,可以说是skynet的外在物理结构,这篇文章我想详细谈一谈整个skynet的设计结构。
第一,准备知识
1,首先,框架使用的语言。一个框架的结构大概设计好之后,就是选用语言去实现,这些语言的实现会影响到该框架的使用,性能和特性,影响到用户是否能够更好的发挥框架优点,所以,下面也会谈谈框架开发语言的问题。
2,其次,弄清楚设计结构是什么。我这里说的设计结构,就是skynet这个框架的大概设计的思路,组织模式,或者是说这个框架具体的工作流程的模式是怎么样的,可能说的不是很准确,这里举个例子:客户端发出请求,请求服务端的数据,服务端去数据库拿到数据,再把数据发给客户端,就是最简单的一个设计结构。在这里,我可能分析skynet的结构会更加详细一些,可能并不准确,但却能帮助我理解skynet这个框架。
3,接着,了解框架的使用特性,特点与思路。框架的设计结构一般也就决定了框架的结构特点,有时候框架也能带来特定的编程方式,或许框架也有自己比较易用特殊的点,这些都是需要去了解的。
4,最后,熟悉框架给到开发者的一些API接口,你不需要现在很熟悉这些接口,但是需要简单了解一下你能用这些API做些什么工能,会对整个框架有好的理解。
以上就是需要准备的知识点。
第二,skynet所用的开发语言
skynet框架所使用的语言主要由2部分组成:C语言 + Lua语言
在之前的skynet目录结构的文章中,也已经提到。skynet框架用C语言写的部分,主要是为了性能和可靠,一些基础的服务是通过C语言来编写,这部分功能不容易发生变动,需要精干的语言去编写实现后,在以后就调用即可。外面的服务或者库,需要变动,或者开发效率要求较高,则用Lua语言代替。
第三,设计结构与思路
skynet 是一个为网络游戏服务器设计的轻量框架,采用单进程,多线程架构。
skynet