Welcome to the skynet wiki!

https://github.com/cloudwu/skynet/wiki

欢迎使用 skynet ,这是一个轻量级的为在线游戏服务器打造的框架。但从社区 Community 的反馈结果看,它也不仅仅使用在游戏服务器领域。Uses 收集了很少一部分使用 skynet 的项目,但实际项目要多得多。欢迎你把你的项目也加到这个列表中。

skynet 的文档目前并不完善,依赖社区的持续建设。由于 skynet 本身并不复杂,所以建议你阅读一下源代码。参考 Blogs 会对理解设计思路和发展历史有所帮助。

Build skynet 非常简单,动手编译一个试着玩一下是个很好的开始。examples 和 test 目录下有些例子。如果你想自己动手做二次开发,你可以从理解 Bootstrap 开始,一开始不要尝试集群 Cluster

虽然 skynet 的核心是由 C 语言编写,但如果只是简单使用 skynet ,并不要求 C 语言基础。但你需要理解 Actor 模式的工作方式,把你的业务拆分成多个服务来协同工作。Lua 是必要的开发语言,你只需要懂得 Lua 就可以使用 LuaAPI 来完成服务间的通讯协作。另外,Snax 可能会是更简单的方式。关于服务间共享数据,除了用消息传递的方式外,还可以参考 ShareData

当然只有这些仅仅可以让 skynet 内部的服务相互协作。要做到给客户端提供服务,还需要使用 Socket API ,或者使用已经编写好的 GateServer 模板解决大量客户端接入的问题。

通过这套 Socket API以及更方便的 SocketChannel(更容易实现 socket 池和断开重连) ,可以让 skynet 异步调度外部 socket 事件。对外部独立服务的访问,最好都通过这套 API 的封装。如果外部库直接调用系统的 socket ,很可能阻塞住 skynet 的工作线程,发挥不出性能。目前 redis 和 MongoDB 都有内置的封装好的 driver 可供使用。也有社区的同学封装了 MySQL 库。

如果你找不到你需要的外部组件的 skynet driver ,可以自己来编写,社区欢迎你的贡献。当然,你也可以写一个独立程序和外部组件沟通,再和 skynet 通讯。通讯协议可以自行定义、也可以使用 Http 协议。另有第三方的库可以选择1 支持 websocket。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值