skynet笔记——构建服务的基础API,编写一个简单的test服务(二)

基础API
在这里插入图片描述


编写一个test服务

  1. 编写一个最简单的服务test.lua
--引入或者说是创建一个skynet服务
local skynet = require "skynet"

--调用skynet.start接口,并定义传入回调函数
skynet.start(function()
	skynet.error("Server First Test")
end)
  1. 修改exmaple/config文件中的start的值为test,表示启动test.lua,修改之前请备份
    在这里插入图片描述
  2. 通过skynet来运行test.lua
    在这里插入图片描述
    运行结果
    在这里插入图片描述
    注意:千万不要在skynet根目录以外的地方执行skynet,例如:
    在这里插入图片描述
    以上出现找不到logger.so的情况,其实不仅仅是这个模块找不到,所有的模块都找不到了,因为在config包含的路劲conf.path中,所有的模块路劲的引入全部依靠着相对路劲。一旦执行skynet程序的位置不一样了,相对路劲也会不一样。
    在这里插入图片描述
  3. 添加自己的LUA脚本路径
  4. 例如:添加my_workspace目录,则只需在luaservice值的基础上再添加一个
    root…“my_workspace/?.lua;” ,注意:各个路劲通过一个 ; 隔开。
    在这里插入图片描述
    把我们的刚才写的test.lua丢到my_workspace中
    在这里插入图片描述
    顺便将example下的config以及conf.path也拷贝一份到my_workspace
    在这里插入图片描述
    这次运行的时候就可以这样了:
    在这里插入图片描述

另外一个种启动服务的方式

另一种方式启动想要的服务,可以在main.lua运行后,在console直接输入需要启动的服务名

  1. 先启动main.lua服务,注意还原examples/config默认配置,并且在example/config.path添加自己的服务
    目录。
    在这里插入图片描述
  2. 在启动的main服务中,直接输入test,回车
    在这里插入图片描述
    在这里插入图片描述

环境变量
在这里插入图片描述
1、预先加载的环境变量是在config中配置的,加载完成后,所有的service都能去获取这些变量。
2、也可以去设置环境变量,但是 不能修改已经存在的环境变量。
3、环境变量设置完成后,当前节点上的所有服务都能访问的到。
4、环境变量设置完成后,即使服务退出了,环境变量依然存在,所以不要滥用环境变量。

例如在config中添加:
在这里插入图片描述
示例代码:testenv.lua
在这里插入图片描述
其他服务也能获取环境变量,例如再启动一个test2.lua:
在这里插入图片描述
先运行test再运行test2
在这里插入图片描述
总结:环境变量只能新增加无法修改。


skynet.init的使用

skynet.init用来注册服务初始化之前,需要执行的函数。也就是在skynet.start之前运行。

示例代码:testinit.lua
在这里插入图片描述
运行结果:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Gsunshine24/article/details/89282029