YASIO - ainda uma outra biblioteca de E / S de soquete .
Inglês
Yasio é uma biblioteca de rede assíncrona multiplataforma leve que se concentra em clientes e serviços de rede de clientes de jogos baseados em vários mecanismos de jogos. Ela suporta Windows, Macos, iOS, Android, Ohos, Linux, FreeBSD e outros sistemas operacionais semelhantes a Unix.
Plataforma de suporte
Construir | Estado (github) |
---|
Windows(msvc,clang,mingw) | |
Janelas (vs2013) | |
Android | |
iOS/tvOS/watchOS | |
Linux | |
macOS | |
FreeBSD | |
Solaris | |
Casos de aplicação
- Idle Girl (HD): usado para transmissão de rede de cliente remasterizada de cocos e unidade.
- Projeto de jogo móvel Red Alert OL: usado para transmissão de rede do cliente e tem funcionado de forma estável em dezenas de milhões de dispositivos móveis desde que o projeto foi lançado oficialmente pela Tencent Games em 17 de outubro de 2018.
- Projeto de software x-studio: solução de rede.
- QttAudio: solução de integração de chat de voz para microfone.
Caso de integração
- Unidade
- yasio_unity: Pacote Unity puro C#, basta abrir a cena
SampleScene
e executá-la. - xlua: Integre o yasio ao xlua, abra a cena
U3DScripting
e execute-a.
- UnrealEngine
- yasio_unreal: Plug-in UnrealEngine para yasio.
- sluaunreal: Integrado ao sluaunreal da Tencent.
- UnLua: UnLua integrado ao Tencent.
- axmol: Solução de rede como motor de jogo
axmol
.
documento
- https://yasio.github.io/yasio
Use g++ para executar rapidamente o programa de teste tcptest
g++ tests/tcp/main.cpp --std=c++11 -DYASIO_HEADER_ONLY -lpthread -I./ -o tcptest && ./tcptest
Use CMake para compilar programas de teste Yasio e programas de amostra
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:
- Suporta transmissão TCP, UDP e KCP, e a API é unificada.
- Suporta processamento de pacotes fixos TCP, portanto a empresa não precisa se preocupar com isso.
- Suporte multicast.
- Suporta redes IPv4/IPv6 ou Apple IPv6_only.
- Suporta manipulação de todos os eventos de rede para múltiplas conexões.
- Suporte temporizador de microssegundos.
- Suporta ligação Lua.
- Suporta ligação Cocos2d-x jsb.
- Suporta ligação CocosCreator jsb2.0.
- Suporte Unity3D.
- Suporta Unreal Engine.
- Suporta cliente/servidor SSL, baseado em OpenSSL/MbedTLS.
- Suporta resolução de nomes de domínio sem bloqueio, com base em c-ares.
- Suporta o modo de integração Header Only, basta definir a macro do pré-processador de compilação
YASIO_HEAD_ONLY=1
. - Suporta soquete de domínio Unix.
- Suporta leitura e gravação binária, e as duas classes de ferramentas obstream/ibstream são muito convenientes de usar.
- Suporta método de codificação de compactação inteira compatível com .net: 7Bit Encoded Int/Int64 .
Sobre C++14/17/20
yasio fornece os seguintes componentes da biblioteca padrão C++ 14/17/20 que podem ser usados no compilador C++ 11. Verifique yasio/string_view.hpp, yasio/shared_mutex.hpp, yasio/memory.hpp.
- cxx14::make_unique
- cxx17::string_view
- cxx17::shared_mutex
- cxx20::começa_com
- cxx20::termina_com
- yasio::byte_buffer
- yasio::pod_vector
Sobre bibliotecas pré-compiladas OpenSSL (Windows)
O script cmake de Yasio seleciona OpenSSL como a biblioteca de suporte SSL por padrão e irá baixá-lo automaticamente do 1kiss. A biblioteca pré-compilada é compilada usando VS2022 -DYASIO_SSL_BACKEND=2
VS2022(MSVC-14.39)
. -DYASIO_SSL_BACKEND=2
, por exemplo, use o script de compilação de plataforma cruzada com um clique build.ps1
fornecido pelo projeto
powershell build.ps1 -p win32 -a x64 -xc " -DYASIO_SSL_BACKEND=2 "
diagrama de quadro
Grupo de comunicação QQ
Clique para aderir: 829884294