
skynet
文章平均质量分 81
yuan2053
gameMaker
展开
-
skynet C模块
skynet核心概念为服务,一个服务可以由C或lua实现,服务之间的通信已由底层C框架保证。用户要做的只是注册服务,处理消息。如云风的skynet综述中所说:作为核心功能,Skynet 仅解决一个问题:把一个符合规范的 C 模块,从动态库(so 文件)中启动起来,绑定一个永不重复(即使模块退出)的数字 id 做为其 handle 。模块被称为服务(Service),服务间可以自由发送消息。转载 2017-03-09 16:19:16 · 1069 阅读 · 0 评论 -
skynet lua服务
C模块的导出从skynet核心模块来看,它只认得C服务,每个服务被编译为动态库,在需要时由skynet加载。skynet提供发送消息和注册回调函数的接口,并保证消息的正确到达,并调用目标服务回调函数。其它东西,如消息调度,线程池等,对于用户来说都是透明的。skynet服务可以由lua编写,因此skynet将C模块核心接口通过skynet/lualib-src/lua-skynet.c导出为转载 2017-03-09 16:21:16 · 1071 阅读 · 0 评论 -
skynet gateserver
skynet提供一个gateserver用于处理网络事件,位于lualib/snax/gateserver.lua。云风在skynet wiki上介绍了gateserver的功能和使用范例。用户可以通过向gateserver提供一个自定义handle来向gateserver注册事件处理(玩家登录,断开,数据到达等)。gateserver模块使用C编写的socketdriver和netpack模转载 2017-03-09 16:23:21 · 2371 阅读 · 0 评论 -
skynet socketserver
1. 异步IOskynet用C编写的sokcet模块使用异步回调机制,通过lualib-src/lua-socket.c导出为socketdriver模块。skynet socket C API使用的异步回调方式是:在启动socket时,记录当前服务handle,之后该socket上面的消息(底层使用epoll机制)通过skynet消息的方式发往该服务。这里的当前服务指的是socket启动时所转载 2017-03-09 16:22:30 · 937 阅读 · 0 评论