YASIO : Y otra biblioteca de E / S de socket .
Inglés
Yasio es una biblioteca de red asíncrona multiplataforma liviana que se enfoca en clientes y servicios de red de clientes de juegos basados en varios motores de juegos. Es compatible con Windows, Macos, iOS, Android, Ohos, Linux, FreeBSD y otros sistemas operativos similares a Unix.
Plataforma de soporte
Construir | Estado (github) |
---|
Windows (msvc, clang, mingw) | |
Windows (frente a 2013) | |
Androide | |
iOS/tvOS/watchOS | |
linux | |
macos | |
FreeBSD | |
Solaris | |
Casos de aplicación
- Idle Girl (HD): se utiliza para la transmisión de red de clientes remasterizados de cocos y unity.
- Proyecto de juego móvil Red Alert OL: se utiliza para la transmisión de la red del cliente y se ha estado ejecutando de manera estable en decenas de millones de dispositivos móviles desde que Tencent Games lanzó oficialmente el proyecto el 17 de octubre de 2018.
- Proyecto de software x-studio: solución de red.
- QttAudio: solución de integración de chat de voz a micrófono.
Caso de integración
- Unidad
- yasio_unity: paquete Unity puro de C#, simplemente abra la escena
SampleScene
y ejecútelo. - xlua: integra yasio en xlua, abre la escena
U3DScripting
y ejecútalo.
- motor irreal
- yasio_unreal: complemento UnrealEngine para yasio.
- sluaunreal: Integrado en sluaunreal de Tencent.
- UnLua: UnLua integrado en Tencent.
- axmol: Solución de red como motor de juego
axmol
.
documento
- https://yasio.github.io/yasio
Utilice g++ para ejecutar rápidamente el programa de prueba tcptest
g++ tests/tcp/main.cpp --std=c++11 -DYASIO_HEADER_ONLY -lpthread -I./ -o tcptest && ./tcptest
Utilice CMake para compilar programas de prueba y programas de muestra de yasio
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打开
característica:
- Admite transmisión TCP, UDP y KCP y la API está unificada.
- Admite el procesamiento de paquetes fijos TCP, por lo que la empresa no necesita preocuparse en absoluto.
- Soporta multidifusión.
- Admite redes IPv4/IPv6 o Apple IPv6_only.
- Admite el manejo de todos los eventos de red para múltiples conexiones.
- Admite temporizador de microsegundos.
- Soporta enlace Lua.
- Admite el enlace Cocos2d-x jsb.
- Admite el enlace CocosCreator jsb2.0.
- Soporte Unity3D.
- Soporta motor irreal.
- Admite cliente/servidor SSL, basado en OpenSSL/MbedTLS.
- Admite resolución de nombres de dominio sin bloqueo, basada en c-ares.
- Admite el modo de integración Solo encabezado, simplemente defina la macro del preprocesador de compilación
YASIO_HEAD_ONLY=1
. - Admite socket de dominio Unix.
- Admite lectura y escritura binaria, y las dos clases de herramientas obstream/ibstream son muy cómodas de usar.
- Admite el método de codificación de compresión de enteros compatible con .net: 7Bit Encoded Int/Int64 .
Acerca de C++14/17/20
yasio proporciona los siguientes componentes de biblioteca estándar C++ 14/17/20 que se pueden usar en el compilador C++ 11. Consulte yasio/string_view.hpp, yasio/shared_mutex.hpp, yasio/memory.hpp.
- cxx14::hacer_unique
- cxx17::vista_cadena
- cxx17::mutex_compartido
- cxx20::comienza_con
- cxx20::termina_con
- yasio::byte_buffer
- yasio::pod_vector
Acerca de las bibliotecas precompiladas de OpenSSL (Windows)
El script cmake de Yasio selecciona OpenSSL como biblioteca de soporte SSL de forma predeterminada y la descargará automáticamente desde 1kiss. La biblioteca precompilada se compila usando VS2022(MSVC-14.39)
. Si esta versión no está instalada en su sistema, pase el parámetro CMake -DYASIO_SSL_BACKEND=2
, por ejemplo, utilice el script de compilación multiplataforma con un solo clic build.ps1
proporcionado por el proyecto
powershell build.ps1 -p win32 -a x64 -xc " -DYASIO_SSL_BACKEND=2 "
diagrama de marco
grupo de comunicacion qq
Haga clic para unirse: 829884294