手把手教你从零跑一个Skynet

本文提供了一步一步的教程,指导如何从零开始在Ubuntu虚拟机中搭建并运行Skynet框架。从下载Ubuntu系统镜像、安装VirtualBox,到配置Ubuntu系统,安装必要的开发工具如git、autoconf、gcc。接着,下载Skynet源码并编译,运行Skynet示例。最后,详细介绍了编写和运行Skynet服务的步骤,包括主服务、打工服务和买猫粮服务的实现,以及如何利用网络模块、节点集群和数据库模块进行更复杂的操作。
摘要由CSDN通过智能技术生成

一、前言

最近,我在搞服务端的skynet框架,看看以后自己做些作品(skynet框架服务端+Unity客户端)。今天呢,我就先把skynet环境搞一下,讲讲流程,也方便想学习的同学,话不多说,我们开始吧~

二、关于Skynet

skynet是一个轻量级的网络游戏框架,也可用于许多其他领域。
在这里插入图片描述

建议大家看下云风的《[Skynet设计综述][Skynet 4]》,这里我不过多赘述,主要讲讲操作流程~

三、Ubuntu虚拟机

skynet需要运行在linuxmacos系统中,这里作为演示,我使用Ubuntu虚拟机。下面我讲下Ubuntu虚拟机的安装过程。

1、Ubuntu系统镜像下载

首先我们需要先下载Ubuntu系统的iso文件,下面这些地址都可以下载,大家选择一个即可:

网易开源镜像:[http://mirrors.163.com/ubuntu-releases/][http_mirrors.163.com_ubuntu-releases]
Ubuntu官方:[http://releases.ubuntu.com/][http_releases.ubuntu.com]
Ubuntu中国官网:[https://ubuntu.com/download/alternative-downloads][https_ubuntu.com_download_alternative-downloads]
中科开源镜像:[http://mirrors.ustc.edu.cn/ubuntu-releases/][http_mirrors.ustc.edu.cn_ubuntu-releases]
阿里开源镜像:[http://mirrors.aliyun.com/ubuntu-releases/][http_mirrors.aliyun.com_ubuntu-releases]
浙江大学开源镜像:[http://mirrors.zju.edu.cn/ubuntu-releases/][http_mirrors.zju.edu.cn_ubuntu-releases]

我以Ubuntu 16.04.7版本为例,地址:[http://mirrors.163.com/ubuntu-releases/16.04.7/][http_mirrors.163.com_ubuntu-releases_16.04.7]
在这里插入图片描述
iso文件下载到本地,
在这里插入图片描述

2、VirtualBox虚拟机软件

有了iso文件,需要将其安装到虚拟机中,而虚拟机需要运行在虚拟机软件上,所以,我们还需要先安装一个虚拟机软件。
虚拟机软件大家常用的是VMWare,这里我强烈推荐另一款虚拟机软件:VirtualBox,它轻量、开源免费,对于个人学习使用完全足够,五星推荐~

关于VirtualBox:
VirtualBox是一款开源虚拟机软件。VirtualBox是由德国Innotek公司开发,由Sun Microsystems公司出品的软件,使用Qt编写,在 SunOracle收购后正式更名成 Oracle VM VirtualBox
VirtualBox号称是最强的免费虚拟机软件,它不仅具有丰富的特色,而且性能也很优异!它简单易用,可虚拟的系统包括Windows(从Windows 3.1Windows 10Windows Server 2012,所有的Windows系统都支持)、Mac OS XLinuxOpenBSDSolarisIBM OS2甚至Android等操作系统!使用者可以在VirtualBox上安装并且运行上述的这些操作系统!

2.1、VirtualBox下载

VirtualBox我们可以从官网下载到,地址:[https://www.virtualbox.org/][https_www.virtualbox.org]
在这里插入图片描述
选择windows版本,点击下载,
在这里插入图片描述

下载完毕,
在这里插入图片描述

2.2、VirtualBox安装

双击安装包运行安装,过程没有什么特别的,这里不赘述~
安装成功后打开VirtualBox,界面如下:
在这里插入图片描述

2.3、创建虚拟机

点击菜单控制/新建
在这里插入图片描述
填写虚拟机名称,设置虚拟机保存路径,如下,我设置为E:\ubuntu16
在这里插入图片描述

设置内存大小,建议分配2G内存,
在这里插入图片描述

创建虚拟硬盘,
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

建议分配10G的虚拟硬盘空间,
在这里插入图片描述
虚拟机创建完成,如下
在这里插入图片描述

3、载入Ubuntu iso镜像

点击启动虚拟机,会提示选择启动盘,点击下面的小按钮,
在这里插入图片描述
点击注册,
在这里插入图片描述
选择我们刚刚下载的iso系统镜像文件,打开,可以看到列表中出现了我们的镜像,选中它,
在这里插入图片描述
点击启动,即可进入系统安装。

4、Ubuntu系统安装过程

点击Install Ubuntu
在这里插入图片描述
点击Continue
在这里插入图片描述
点击Install Now
在这里插入图片描述
此时会弹个提示框,点击Continue
在这里插入图片描述
时区填写China Time,然后点击Continue
在这里插入图片描述
语言默认English,点击Continue
请添加图片描述
接着输入账号密码,后面进入系统的时候要用到,这里提示我的密码弱(Weak password),由于只是自己学习使用,密码弱也没什么关系,点击Continue
在这里插入图片描述
接着就是耐心等待它安装,
在这里插入图片描述
完成后,会提示需要重启,点击Restart Now
在这里插入图片描述
进入下面这个界面时,按一下回车键,
在这里插入图片描述
输入刚刚设置的密码,
在这里插入图片描述
顺利进入系统,
在这里插入图片描述

四、安装必要的工具

1、安装git

我们需要通过git来下载skynet,所以必须先安装git,我们先打开终端,如下:
请添加图片描述
在终端输入下面的命令:(注意按回车后需要输入一次密码,并且密码不会显示出来,不要怀疑你的键盘)

sudo apt-get install git

如下:请添加图片描述
安装完毕后,输入下面的命令检查下git是否安装成功了,

git --version

如果输出了版本号,则说明git已经安装成功了,
在这里插入图片描述

2、安装autoconf

编译skynet需要用到autoconf,在终端输入下面的命令来安装autoconf

sudo apt-get install autoconf

如下:
请添加图片描述
安装完毕后,输入autoconf --version按回车,如果能输出版本号,则说明安装成功了,
在这里插入图片描述

3、安装gcc

编译skynet需要用到gcc,因为Ubuntu默认安装了gcc,所以我们这里就不用重复安装了,可以在终端中输入gcc --version,如果能输出版本号,则说明已经安装了gcc
在这里插入图片描述
如果提示没有gcc,则执行sudo apt-get install gcc进行安装即可。

五、下载Skynet源码

在终端中执行下面的命令,

git clone https://gitee.com/mirrors/skynet.git

如下:
请添加图片描述
下载完毕后,我们打开文件夹浏览器,可以在Home目录中看到多了一个skynet文件夹,
请添加图片描述
进入skynet文件夹,就可以看到框架源码啦,
在这里插入图片描述

六、编译Skynet源码

在终端中进入skynet目录,

cd skynet

如下:
在这里插入图片描述
然后执行下面的命令:

make linux

此处你可能会报错,如下:
在这里插入图片描述
这是因为过程中去gitub下载jemalloc失败了,可以多试几次,编译成功后显示的输出内容如下:
在这里插入图片描述
我们可以在skynet目录中看到生成了一个可执行文件:skynet,如下:
在这里插入图片描述

七、运行Skynet案例

在终端中进入skynet目录后,执行下面的命令,

./skynet example/config

如下,可以看到服务启动成功了,
在这里插入图片描述
接下来,我们开启一个新的终端,
在这里插入图片描述
运行一个客户端来测试一下,先cd skynet进入目录,
然后执行如下命令:

./3rd/lua/lua example/client.lua

如下,每隔5秒就会给服务端发送一个heartbeat心跳包,
在这里插入图片描述
我们可以输入hello,服务器会回应一个world,如下:
请添加图片描述

八、写个Demo

想要自己写个Demo,得先知道skynet是如何工作的。

1、配置文件

运行skynet时,需要制定一个配置文件,例:

./skynet example/config

我们先看看这个config文件里面是啥,进入examples目录,打开config文件,
在这里插入图片描述
config文件内容如下:

include "config.path"

-- preload = "./examples/preload.lua"	-- run preload.lua before every lua service run
thread = 8
logger = nil
logpath = "."
harbor = 1
address = "127.0.0.1:2526"
master = "127.0.0.1:2013"
start = "main"	-- main script
bootstrap = "snlua bootstrap"	-- The service for bootstrap
standalone = "0.0.0.0:2013"
-- snax_interface_g = "snax_g"
cpath = root.."cservice/?.so"
-- daemon = "./skynet.pid"

第一行引用了config.path文件,我们打开config.path文件,
在这里插入图片描述
内容如下:

root = "./"
luaservice = root.."service/?.lua;"..root.."test/?.lua;"..root.."examples/?.lua;"..root.."test/?/init.lua"
lualoader = root .. "lualib/loader.lua"
lua_path = root.."lualib/?.lua;"..root.."lualib/?/init.lua"
lua_cpath = root .. "luaclib/?.so"
snax = root.."examples/?.lua;"..root.."test/?.lua"

现在,我们把两个文件合在一起看,如下:

root = "./"
luaservice = root.."service/?.lua;"..root.."test/?.lua;"..root.."examples/?.lua;"..root.."test/?/init.lua"
lualoader = root .. "lualib/loader.lua"
lua_path = root.."lualib/?.lua;"..root.."lualib/?/init.lua"
lua_cpath = root .. "luaclib/?.so"
snax = root.."examples/?.lua;"..root.."test/?.lua"

-- preload = "./examples/preload.lua"	-- run preload.l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值