YASIO — Y et Еще одна библиотека сокетного ввода- вывода .
Английский
Yasio — это легкая кроссплатформенная асинхронная сетевая библиотека, ориентированная на клиентов и игровые клиентские сетевые службы на основе различных игровых движков. Она поддерживает Windows, MacOS, iOS, Android, ohos, Linux, FreeBSD и другие unix-подобные операционные системы.
Платформа поддержки
Строить | Статус (GitHub) |
---|
Windows(msvc,clang,mingw) | |
Windows (против2013) | |
Андроид | |
iOS/tvOS/watchOS | |
Линукс | |
macOS | |
FreeBSD | |
Солярис | |
Случаи применения
- Idle Girl (HD): используется для передачи обновленных клиентских сетей Cocos и Unity.
- Проект мобильной игры Red Alert OL: используется для передачи данных по клиентской сети и стабильно работает на десятках миллионов мобильных устройств с момента официального запуска проекта Tencent Games 17 октября 2018 года.
- Программный проект x-studio: сетевое решение.
- QttAudio: решение для интеграции голосового чата с микрофоном.
Интеграционный кейс
- Единство
- yasio_unity: пакет Unity pure C#, просто откройте сцену
SampleScene
и запустите ее. - xlua: интегрируйте yasio в xlua, откройте сцену
U3DScripting
и запустите ее.
- UnrealEngine
- yasio_unreal: плагин UnrealEngine для yasio.
- sluaunreal: интегрирован в sluaunreal от Tencent.
- UnLua: UnLua интегрирован в Tencent.
- axmol: Сетевое решение в качестве игрового движка
axmol
.
документ
- https://yasio.github.io/yasio
Используйте g++ для быстрого запуска тестовой программы tcptest.
g++ tests/tcp/main.cpp --std=c++11 -DYASIO_HEADER_ONLY -lpthread -I./ -o tcptest && ./tcptest
Используйте CMake для компиляции тестовых программ 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打开
характеристика:
- Поддерживает передачу TCP, UDP и KCP, а API унифицирован.
- Поддерживает обработку липких пакетов TCP, поэтому бизнесу вообще не нужно об этом беспокоиться.
- Поддержка многоадресной рассылки.
- Поддерживает сети IPv4/IPv6 или Apple IPv6_only.
- Поддерживает обработку всех сетевых событий для нескольких подключений.
- Поддержка микросекундного таймера.
- Поддерживает привязку Lua.
- Поддержка привязки Cocos2d-x jsb.
- Поддержка привязки CocosCreator jsb2.0.
- Поддержка Юнити3Д.
- Поддерживает Unreal Engine.
- Поддерживает клиент/сервер SSL на основе OpenSSL/MbedTLS.
- Поддерживает неблокирующее разрешение доменных имен на основе c-ares.
- Поддерживает режим интеграции «Только заголовок», просто определите макрос препроцессора компиляции
YASIO_HEAD_ONLY=1
. - Поддерживает доменный сокет Unix.
- Поддерживает двоичное чтение и запись, а два класса инструментов obstream/ibstream очень удобны в использовании.
- Поддерживает метод целочисленного сжатия, совместимый с .net: 7Bit Encoded Int/Int64 .
О C++14/17/20
yasio предоставляет следующие компоненты стандартной библиотеки C++14/17/20, которые можно использовать в компиляторе C++11. Проверьте 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
- ясио::pod_vector
О предварительно скомпилированных библиотеках OpenSSL (Windows)
Сценарий cmake Yasio по умолчанию выбирает OpenSSL в качестве библиотеки поддержки SSL и автоматически загружает ее с 1kiss. Предварительно скомпилированная библиотека скомпилирована с использованием VS2022(MSVC-14.39)
. Если эта версия не установлена в вашей системе, укажите параметр CMake -DYASIO_SSL_BACKEND=2
, например, используйте кроссплатформенный скрипт компиляции в один клик build.ps1
предоставленный проектом.
powershell build.ps1 -p win32 -a x64 -xc " -DYASIO_SSL_BACKEND=2 "
рамочная диаграмма
Группа связи QQ
Нажмите, чтобы присоединиться: 829884294