|
平台的c++<->lua服务器快速解决方案,该框架即可快速响应服务器开发工作,设计思想:“让事情变得更简单”
网络底层采用libuv(node.js底层库),异步io助力使单线程也能释放澎湃动力,跨平台支持epoll、iocp、ipv6。框架支持tcp、udp/kcp、websocket、http,并保证了接口的一致性,使用了sol2将所有接口都导出到lua,可以选择用lua开发逻辑。
使用modern c++开发,尽可能的使用std::move、std::string_view减少内存复制。
该框架使用异步事件,不建议使用多线程,避免多线程上下文切换开销和破坏代码美感,网络部分和逻辑部分使用一个主事件循环驱动。建议的方案是多进程单线程的横向扩展,按照业务控制各个进程的粒度,当然mysql和redis可以加入到线程池中。
创建一个tcp服务器
只需要简单几行代码即可创建一个tcp高性能服务器,并自动处理数据包头和粘包(其中包头包含消息长度和协议号),构建一个完好的NetPacket交给你。
过serialization工具可以将协议的描述文件生成c++和lua代码,自动生成read()和write()的函数实现,使得数据结构快速映射到SocketBuffer中。
目前serialization序列化工具为实验性,可能是脆弱的,建议使用更强大的protobuf。该项目已集成lua-protobuf,使得c++和lua之间的协议无缝衔接。
lua-protobuf的开源地址: lua-protobuf
这个示例展示了c++客户端和lua服务器之间的通讯: 快速搭建服务器Demo

(编辑:大同站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|