YASIO – Eine weitere Socket- I / O -Bibliothek.
Englisch
Yasio ist eine leichte, plattformübergreifende asynchrone Netzwerkbibliothek, die sich auf Clients und Spiele-Client-Netzwerkdienste konzentriert, die auf verschiedenen Spiele-Engines basieren. Sie unterstützt Windows, MacOS, iOS, Android, Ohos, Linux, FreeBSD und andere Unix-ähnliche Betriebssysteme.
Support-Plattform
Bauen | Status (Github) |
---|
Windows(msvc,clang,mingw) | |
Windows (vs2013) | |
Android | |
iOS/tvOS/watchOS | |
Linux | |
macOS | |
FreeBSD | |
Solaris | |
Anwendungsfälle
- Idle Girl (HD): Wird für die Netzwerkübertragung von Cocos und Unity Remastered Client verwendet.
- Red Alert OL-Mobilspielprojekt: Wird für die Client-Netzwerkübertragung verwendet und läuft seit dem offiziellen Start des Projekts durch Tencent Games am 17. Oktober 2018 stabil auf zig Millionen Mobilgeräten.
- X-Studio-Softwareprojekt: Netzwerklösung.
- QttAudio: Voice-to-Mic-Chat-Integrationslösung.
Integrationsfall
- Einheit
- yasio_unity: Unity reines C#-Paket, öffnen Sie einfach die Szene
SampleScene
und führen Sie sie aus. - xlua: Yasio in xlua integrieren, die Szene
U3DScripting
öffnen und ausführen.
- UnrealEngine
- yasio_unreal: UnrealEngine-Plugin für Yasio.
- sluaunreal: Integriert in Tencents sluaunreal.
- UnLua: UnLua in Tencent integriert.
- axmol: Netzwerklösung als
axmol
Game-Engine.
dokumentieren
- https://yasio.github.io/yasio
Verwenden Sie g++, um das tcptest-Testprogramm schnell auszuführen
g++ tests/tcp/main.cpp --std=c++11 -DYASIO_HEADER_ONLY -lpthread -I./ -o tcptest && ./tcptest
Verwenden Sie CMake, um Yasio-Testprogramme und Beispielprogramme zu kompilieren
git clone --recursive https://github.com/yasio/yasio
cd yasio
# 如果是 macOS Xcode, 这里命令应该换成:cmake -B build -GXcode
cmake -B build
# 使用CMake命令行编译, 如果需要调试,则使用相应平台IDE打开即可:
# a. Windows:使用VisualStudio打开build/yasio.sln
# b. macOS:使用Xcode打开build/yasio.xcodeproj
cmake --build build --config Debug
# # 者直接用VS打开
Merkmal:
- Unterstützt TCP-, UDP- und KCP-Übertragung und die API ist vereinheitlicht.
- Unterstützt die TCP-Sticky-Packet-Verarbeitung, sodass sich das Unternehmen darüber überhaupt keine Sorgen machen muss.
- Unterstützt Multicast.
- Unterstützt IPv4/IPv6- oder Apple IPv6_only-Netzwerke.
- Unterstützt die Verarbeitung aller Netzwerkereignisse für mehrere Verbindungen.
- Unterstützt Mikrosekunden-Timer.
- Unterstützt Lua-Bindung.
- Unterstützt die Cocos2d-x-JSB-Bindung.
- Unterstützt die CocosCreator jsb2.0-Bindung.
- Unterstützen Sie Unity3D.
- Unterstützt Unreal Engine.
- Unterstützt SSL-Client/Server, basierend auf OpenSSL/MbedTLS.
- Unterstützt die nicht blockierende Domänennamenauflösung basierend auf c-ares.
- Unterstützt den Nur-Header-Integrationsmodus. Definieren Sie einfach das Kompilierungs-Präprozessormakro
YASIO_HEAD_ONLY=1
. - Unterstützt Unix-Domain-Socket.
- Unterstützt binäres Lesen und Schreiben, und die beiden Werkzeugklassen obstream/ibstream sind sehr bequem zu verwenden.
- Unterstützt die mit .net kompatible Integer-Komprimierungskodierungsmethode: 7Bit Encoded Int/Int64 .
Über C++14/17/20
Yasio stellt die folgenden C++14/17/20-Standardbibliothekskomponenten bereit, die unter dem C++11-Compiler verwendet werden können. Bitte überprüfen Sie yasio/string_view.hpp, yasio/shared_mutex.hpp, yasio/memory.hpp
- cxx14::make_unique
- cxx17::string_view
- cxx17::shared_mutex
- cxx20::starts_with
- cxx20::ends_with
- yasio::byte_buffer
- yasio::pod_vector
Informationen zu vorkompilierten OpenSSL-Bibliotheken (Windows)
Das cmake-Skript von Yasio wählt standardmäßig OpenSSL als SSL-Unterstützungsbibliothek aus und lädt es automatisch von 1kiss herunter. Die vorkompilierte Bibliothek wird mit VS2022(MSVC-14.39)
kompiliert. Wenn diese Version nicht auf Ihrem System installiert ist, übergeben Sie bitte den CMake-Parameter -DYASIO_SSL_BACKEND=2
Verwenden Sie beispielsweise das vom Projekt bereitgestellte plattformübergreifende Ein-Klick-Kompilierungsskript build.ps1
powershell build.ps1 -p win32 -a x64 -xc " -DYASIO_SSL_BACKEND=2 "
Rahmendiagramm
QQ-Kommunikationsgruppe
Klicken Sie hier, um beizutreten: 829884294