[关闭]
@wsd1 2017-01-19T08:02:18.000000Z 字数 1236 阅读 895

【专题9】Skynet代码快速检索

skynet 201611


lualib/skynet.lua

大多数skynet命名空间下的API都定义在:

skynet_server.c

skynet.core 的实现是在 lua-skynet.c

socketdriver 定义在 lua-socket.c

socketdriver socket socketchannel区别

socketdriver

定义在:lua-socket.c skynet_socket.c
这个是基于skynet消息框架提供的socket服务,扩展出lua相应API。

lua中引用:

local driver = require "socketdriver"

socket

定义在:lualib/socket.lua
引用了 socketdriver

提供了一组阻塞模式的 lua API 用于 TCP socket 的读写。它是对 C API 的封装。

所谓阻塞模式,实际上是利用了 lua 的 coroutine 机制。当你调用 socket api 时,服务有可能被挂起(时间片被让给其他业务处理),待结果通过 socket 消息返回,coroutine 将延续执行。

  1. local socket = require "socket"

这样就可以在你的服务中引入这组 api 。

socketchannel

定义在:lualib/socketchannel.lua

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注