int skynet_send(
struct skynet_context * context, //
uint32_t source, //可不填,默认为自己
uint32_t destination, //发送的目的地址
int type, //消息类型
int session, //
void * msg, //发送的消息的地址
size_t sz //发送的消息的长度
);
内部服务间通信:
无需响应:skynet.send()
需要响应:skynet.call()
目的地址的接收:skynet.dispatch()
①消息打包与解包
local msg, sz = skynet.pack("zhoudongyu", 24, false)
local arg1, arg2, arg3 = skynet.unpack(msg, sz)
其中
msg——消息指针地址
sz——消息长度”
“zhoudongyu”, 24, false——都是打算要发送的消息
②向某个服务发送一个消息(无需响应的消息)
发送端:
skynet.send(addr, type, ...) //...代表要发送的消息(send函数会自动帮你打包)
skynet.rawsend(addr, type, msg, sz) //msg,sz就是打包好的消息
接收端:
skynet.dispatch