一個跨平臺的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交給你。
創建一個kcp服務器
c++的kcp服務器示例,快速構建你的幀同步服務器,保證消息的可靠性
創建一個websocket服務器
自動完成解析websocket協議工作
更多詳細介紹請前往文章末尾處的傳送鏈接
構建
你需要一個modern c++17編譯器
- vs2017 測試通過
- gcc version 9.3.0 測試通過
獲取開源
1、github中搜索:jwEngine
2、復制網址:
https://github.com/jwcpp/jwEngine