skynet学习笔记二
2016-04-14 11:31
253 查看
skynet已经做好了服务间消息的推送与接收,使用都只需要按照约定的协议进行handle处理就可以了。
RPC调用
skynet.call(address, typename,…)
此接口会在内部生成唯一一个session,并向address发起请求。(注意:这里的address可以是一个name),并且阻塞的等待对session的回应。当消息回应后通过之前注册的unapck函数解包。可以将它理解为pomelo里面的rpc,并阻塞等待回应.(pomelo中为异步等待回应),call不支持超时。貌似风云也不打算准备支持超时。
skynet.send(address, typename,…)
此接口为非阻塞的向address推送一条消息,事先会通过注册的pack打包.
skynet.redirect(address, source, typname, session,…)
此接口与send功能类似,但可以指定发送地址source,指定发送的session.
skynet.rawcall(address, typename, message, size)
此接口与call类似,阻塞API,但不pack,收到回应后也不unpack。
demo,在talkbox示例中,main有以下代码
https://www.processon.com/i/568c6ea4e4b0e51d149a085f
这个网站解决了大家开始设计阶段的问题,轻量级的各种设计模型,强烈推荐
RPC调用
skynet.call(address, typename,…)
此接口会在内部生成唯一一个session,并向address发起请求。(注意:这里的address可以是一个name),并且阻塞的等待对session的回应。当消息回应后通过之前注册的unapck函数解包。可以将它理解为pomelo里面的rpc,并阻塞等待回应.(pomelo中为异步等待回应),call不支持超时。貌似风云也不打算准备支持超时。
skynet.send(address, typename,…)
此接口为非阻塞的向address推送一条消息,事先会通过注册的pack打包.
skynet.redirect(address, source, typname, session,…)
此接口与send功能类似,但可以指定发送地址source,指定发送的session.
skynet.rawcall(address, typename, message, size)
此接口与call类似,阻塞API,但不pack,收到回应后也不unpack。
demo,在talkbox示例中,main有以下代码
local skynet = require "skynet" local max_client = 64 skynet.start(function() print("[LOG]",os.date("%m-%d-%Y %X", skynet.starttime()),"Server start") skynet.newservice("talkbox") -- 启动talkbox服务 local watchdog = skynet.newservice("watchdog") --启动watchdog服务 skynet.call(watchdog, "lua", "start", { --对watchdog做一次rpc,lua协议 port = 10101, maxclient = max_client, }) skynet.exit() -- 退出这个skynet,原有服务保留,talkbox与watchdog。 end)
https://www.processon.com/i/568c6ea4e4b0e51d149a085f
这个网站解决了大家开始设计阶段的问题,轻量级的各种设计模型,强烈推荐
相关文章推荐
- skynet学习一
- skynet流程分析二
- skynet的定时器
- skynet的流程分析一
- skynet学习笔记一
- install skynet, report error: can not find readline.h
- skynet中使用云风的pbc
- 游戏服务器心跳包的作用
- skynet 学习之旅
- skynet使用笔记
- skynet的sproto模块
- skynet.记录.编译(ubuntu)
- skynet特性
- skynet源码分析(11)--skynet的配置加载
- skynet源码分析(10)--消息机制之消息注册和回调
- skynet源码分析(9)--LUA C API
- skynet学习资料整理
- skynet 控制台管理使用技巧
- Skynet基础入门例子详解(1)
- CentOS安装skynet问题总结