当前位置: 首页 > news >正文

Skynet入门(二)

常用接口说明

接口说明
newservice(name, …)启动一个name的新服务,并返回新服务的地址
start(func)用func初始换服务。编写服务时,都会写一句skynet.start,并在func写一些初始化代码
dispatch(type, func为type类型的消息设定处理函数func
send(addr, type, cmd, …)向地址为addr的服务发送一条type类型消息,消息名为cmd
call(addr, type, cmd向地址为addr的服务发送一条type类型的消息,并等待对方的回应,为阻塞方法

服务器设计

服务

  • agent:负责玩家的数据加载、数据存储、单服逻辑的处理。为了性能考虑,agent必须跟客户端*连接的gateway处于同一个节点。
  • agentmngr:管理agent的服务,它记录每个agent所在的节点,避免不同客户端登录同个账号
  • gateway:网关,用于处理客户端连接。
    • 好处:
      • 隔离客户端和服务端,如果客户端协议调整,那么只需要更改gateway即可。
      • 预留了断线重连功能,即使客户端断线,只影响gateway。
    • 坏处:
    • 由于多加了一层转发协议,必定带来一定的延迟。将gateway、login、agent置于同一节点,有助于减少延迟。

目录结构设计

  • etc:存放服务配置文件
  • luaclib:存放一些C模块(.so文件)
  • service:存放业务服务的Lua代码
  • skynet:skynet框架
  • start.sh:启动服务器的脚本

如何将service的代码注册到skynet中,使其可以被skynet寻找到

在配置文件的luaservice配置项中增加service的路径

--必须配置
thread = 8                          --启用多少个工作线程
cpath = "./skynet/cservice/?.so"    --用C编写的服务模块的位置
bootstrap = "snlua bootstrap"       --启动的第一个服务--bootstrap配置项
start = "main"                      --主程序入口
harbor = 0                          --使用cluster集群模式,不使用主从节点模式--lua配置项
lualoader = "./skynet/lualib/loader.lua"
luaservice = "./service/?.lua;" .."./service/?/init.lua;".. "./skynet/service/?.lua;"
lua_path = "./etc/?.lua;" .. "./lualib/?.lua;" ..  "./skynet/lualib/?.lua;" .. "./skynet/lualib/?/init.lua"
lua_cpath = "./luaclib/?.so;" .. "./skynet/luaclib/?.so"--后台模式
--daemon = "./skynet.pid"
--logger = "./userlog"--节点
node = "node1"

http://www.mrgr.cn/news/98143.html

相关文章:

  • TDengine 语言连接器(C/C++)
  • Windows系统Python多版本运行解决TensorFlow安装问题(附详细图文)
  • 用Java NIO模拟HTTPS
  • SDC命令详解:使用相对路径访问设计对象(current_instance命令)
  • 多线程(Java)
  • Ubuntu 系统深度清理:彻底卸载 Redis 服务及残留配置
  • 第十六届蓝桥杯省赛JavaB组题解
  • cdp-(Chrome DevTools Protocol) browserscan检测原理逆向分析
  • LINUX基础 [二] - Linux常见指令
  • 【STM32】ST7789屏幕驱动
  • 2025届蓝桥杯JavaB组个人题解(题目全)
  • 【前端小技巧】实现详情页滚动位置记忆,提升用户体验
  • 02-MySQL 面试题-mk
  • simpy仿真
  • 第十六届蓝桥杯大赛软件赛省赛 Python 大学 B 组 部分题解
  • ChatRex: Taming Multimodal LLM for Joint Perception and Understanding 论文理解和翻译
  • 电感、互感器、变压器和磁珠综合对比——《器件手册--电感/线圈/变压器/磁珠篇》
  • 如何优化多线程上下文切换?
  • Webpack中的文件指纹:给资源戴上个“名牌”
  • ”插入排序“”选择排序“