Skynet运行于Linux操作系统,我们可以在自己的电脑上搭建虚拟机系统,也可以购买阿里云、腾讯云服务器,笔者这个系列的所有代码都是在Ubuntu16.04的虚拟机系统下运行。关于Ubuntu系统的环境搭建,前面的文章已经提过了:Ubuntu16.04环境搭建
1、工具下载
在下载和编译skynet之前,我们需要先下载几个工具,使用快捷键“alt + shift + t”打开终端,输入以下命令:
- sudo apt-get install git --版本控制工具
- sudo apt-get install autoconf --shell脚本生成工具
- sudo apt-get install gcc --代码编译工具
一般的桌面系统都会自带这些工具,在下载之前也可以先检查一下是否已经存在了此工具:
- git --version
- autoconf --version
- gcc --version
2、Skynet下载
在终端中输入以下命令:
git clone https://gitee.com/mirrors/skynet.git
下载完毕之后,我们打开左边的类似文件夹的图标,就能看到skynet已经被下载到了本地;
3、编译源码
在终端中输入以下指令,准备编译:
- cd skynet --进入skynet目录
- make linux --编译
执行指令“make linux”会自动下载第三方库“jemalloc”,如果下载“jemalloc”失败了,可以多试几次,编译成功后显示的输出内容如下:
编译成功后,skynet目录下会多出一个名为“skynet”的可执行文件。
4、运行范例
(1)运行服务端:
要启动Skynet,需指定一份配置文件,“examples/config”是KV数据库的配置文件,输入如下指令可启动它:
- ./skynet examples/config --启动Skynet(KV数据库范例)
运行结果上图所示,输出的内容显示Skynet依次启动了bootstrap、launcher、cmaster、simpledb、watchdog、gate等服务。图中左侧的“:0100000x”代表该条消息由哪个服务产生,可以看到,gate服务(地址为0100000f)监听了8888端口。
(2)运行客户端:
启动服务端后,接着启动客户端。客户端的代码在“examples/client.lua”中,启动客户端的代码需要Lua程序,此程序位于“3rd/lua/lua”中,是Skynet编译后生成的;
如果服务器没有安装Lua,或者Lua版本小于5.3,可以用如下命令启动客户端:
- ./3rd/lua/lua examples/client.lua --启动客户端
客户端的运行结果如上图所示,输入hello,会得到服务端的回应“result world”。