jekeyhui99 发表于 2018-10-19 18:40:22

skynet云风服务端框架

http://forthxu.com/blog/skynet.html
http://blog.codingnow.com/images/skynet.png
skynet是云风编写的服务端底层管理框架,底层由C编写,配套lua作为脚本使用,可换python等其他脚本语言。skynet主要工作是管理注册服务,并开启多线程协调服务之间的调用和通讯。skynet一般用于开发游戏服务端程序。本页面持续更新,主要收集学习skynet有关的任何内容,如果你有好的资料或者你在研究skynet,可以将资料或链接地址发给我。QQ:263967133 email:forthxu@gmail.com《skynet入门实践》 断断续续编写中
简单介绍:PPT快速了解skynet
入门例子:基于skynet的聊天室

腾讯大讲堂(视频、PPT)云风:基于 Actor 模式的开源框架
github:skynetskynet线上使用的数据,解答性能问题
[*]入门

[*]简介
[*]安装要求
[*]Hello World

[*]概述

[*]框架原理
[*]启动流程
[*]目录和文件分析

[*]服务

[*]系统配套功能
[*]so服务
[*]通过snlua.so调用的lua服务

[*]库,主要提供给lua服务用

[*]lua库
[*]so库
[*]MySQL库

[*]源码阅读

[*]代码概述
[*]Makefile文件
[*]skynet配置
[*]skynet服务管理及功能函数
[*]logger.so
[*]master.so和harbor.so
[*]socket和gate.so
[*]snlua.so
[*]skynet.lua(封装skynet给lua使用)
[*]lua通过.so使用c函数
[*]使用protocbuf通讯
[*]使用bjson通讯

[*]编写服务

[*]so服务
[*]snlua启动的服务

[*]游戏框架

[*]协议
[*]游戏架构
[*]网关及登录
[*]聊天
[*]场景
[*]副本
[*]日志

[*]源码下载

[*]skynet git
[*]基于skynet的聊天室
[*]基于skynet的卡牌游戏
[*]基于skynet的多人竞技手游Flappy Bird
[*]基于skynet的mmorpg游戏
[*]基于skynet的http server
[*]有cocos2dx客户端的聊天例子
[*]某小型多人角色扮演游戏服务器
[*]A experimental project for moba like game server
[*]https://github.com/fztcjjl/metoo

[*]参考引用
云风博文:Skynet 设计综述
云风博文:Skynet 开源
云风博文:Skynet 集群及 RPC
[*]学习资源
云风博客:skynet
云风写的wiki
skynet github
lua5.3参考手册
独立的socket模块
skynet wangdali 注释版1
skynet 成都-天空 注释版2
qq群 @时光鸡 注释版3
skynet 单独模块测试
skynet源码分析01-03.rar
skynet源码分析视频 —— 01skynet源码分析(一).avi
Skynet 源代码文件功能简介.pdf
Skynet框架之菜鸟手册.pdf
Skynet 代码阅读笔记.pdf 写得较乱可不看
ourskynet 一个skynet博客 有不错的分析
成都-天空的博客 (他部分丢失的文章可以通过这里查看)
skynet浅析
部分模块源码分析
skynet任务调度分析
项目记录:005 基于skynet的客户端
websocket的实现
了解云风的skynet
网络游戏服务器构架设计(四):云风的轨迹
游戏多服务器架构的一点想法
任务系统框架设计文档
对skynet无任何改动的windows版
skynet golang语言版
给skynet增加websocket模块
skynet框架源码分析 一 二 三 四 五 skynet框架使用心得
[*]游戏开发学习资源http://www.zhihu.com/question/20412562
中文有个游资网,其文档频道有不少入门介绍:
http://dev.gameres.com/
国外有个游戏开发社区,其中有个服务器/网络专区:
http://www.gamedev.net/forum/15-multiplayer-and-network-programming/
有兴趣,再看下 云风 blog: 这家伙特喜欢和擅长这块
http://codingnow.com/
还有一个,早期提供不少好文章的,现已经去创业了,大宝 blog:
http://blog.csdn.net/sodme
http://sodme.dev.blog.163.com/
skeynt QQ群:340504014
我建的问答网站(提问可前往此处)2014-12-13聚会视频
http://pan.baidu.com/s/1gd1mPjX 密码:ogj3
http://www.youku.com/playlist_show/id_23199360.html
[*]编写人
skiing886
forthxu
加入我们请联系QQ:263967133


jekeyhui99 发表于 2018-10-19 18:46:17

这是一个轻量级的为在线游戏服务器打造的框架。但从社区 Community 的反馈结果看,它也不仅仅使用在游戏服务器领域。Uses 收集了很少一部分使用 skynet 的项目,但实际项目要多得多。欢迎你把你的项目也加到这个列表中。如果你对 skynet 毫无了解,那么可以先阅读一下 GettingStarted。由于 skynet 本身并不复杂,同时建议你阅读一下源代码。参考 Blogs 会对理解设计思路和发展历史有所帮助。还有一些同学自发编写的第三方文档 ThirdPartyDocument 供参考。Build skynet 非常简单,动手编译一个试着玩一下是个很好的开始。examples 和 test 目录下有些例子。如果你想自己动手做二次开发,你可以从理解 Bootstrap 开始,一开始不要尝试集群 Cluster 。虽然 skynet 的核心是由 C 语言编写,但如果只是简单使用 skynet ,并不要求 C 语言基础。但你需要理解 Actor 模式的工作方式,把你的业务拆分成多个服务来协同工作。Lua 是必要的开发语言,你只需要懂得 Lua 就可以使用 LuaAPI 来完成服务间的通讯协作。另外,Snax 可能会是更简单的方式。关于服务间共享数据,除了用消息传递的方式外,还可以参考 ShareData 。skynet 已提供的功能可以参考 APIList 。当然只有这些仅仅可以让 skynet 内部的服务相互协作。要做到给客户端提供服务,还需要使用 Socket API ,或者使用已经编写好的 GateServer 模板解决大量客户端接入的问题。或许你还需要为 C/S 通讯制订一套通讯协议,skynet 并没有规定这个协议,可以自由选择。当然你也可以看看 Sproto。通过这套 Socket API以及更方便的 SocketChannel(更容易实现 socket 池和断开重连) ,可以让 skynet 异步调度外部 socket 事件。对外部独立服务的访问,最好都通过这套 API 的封装。如果外部库直接调用系统的 socket ,很可能阻塞住 skynet 的工作线程,发挥不出性能。目前 redis 和 MongoDB 都有内置的封装好的 driver 可供使用。也有社区的同学封装了 MySQL 库。如果你找不到你需要的外部组件的 skynet driver ,可以自己来编写,社区欢迎你的贡献。当然,你也可以写一个独立程序和外部组件沟通,再和 skynet 通讯。通讯协议可以自行定义,也可以使用 Http协议。另有第三方的库可以选择1 支持 websocket。
页: [1]
查看完整版本: skynet云风服务端框架