YASIO - Y وآخرون مكتبة مقبس الإدخال / الإخراج .
إنجليزي
Yasio عبارة عن مكتبة شبكة غير متزامنة خفيفة الوزن عبر الأنظمة الأساسية تركز على العملاء وخدمات شبكة عملاء الألعاب استنادًا إلى محركات الألعاب المختلفة، وهي تدعم أنظمة التشغيل Windows وmacos وios وandroid وohos وlinux وfreebsd وأنظمة التشغيل الأخرى المشابهة لنظام التشغيل Unix.
منصة الدعم
يبني | الحالة (جيثب) |
---|
ويندوز (msvc، clang، mingw) | |
ويندوز (مقابل 2013) | |
أندرويد | |
iOS/tvOS/watchOS | |
لينكس | |
ماك | |
فري بي إس دي | |
سولاريس | |
حالات التطبيق
- Idle Girl (HD): يستخدم لنقل شبكة العميل المعاد تصميمها والوحدة.
- مشروع لعبة الهاتف المحمول 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.
- slauunreal: تم دمجه في 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.
- يدعم التعامل مع كافة أحداث الشبكة لاتصالات متعددة.
- دعم الموقت ميكروثانية.
- يدعم ربط لوا.
- دعم ربط Cocos2d-x jsb.
- دعم ربط CocosCreator jsb2.0.
- دعم الوحدة 3D.
- يدعم محرك غير واقعي.
- يدعم عميل/خادم SSL، استنادًا إلى OpenSSL/MbedTLS.
- يدعم تحليل اسم المجال غير المحظور، بناءً على c-ares.
- يدعم وضع التكامل للرأس فقط، ما عليك سوى تحديد ماكرو المعالج المسبق للتجميع
YASIO_HEAD_ONLY=1
. - يدعم مقبس مجال يونكس.
- يدعم القراءة والكتابة الثنائية، وفئتا الأدوات 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
- ياسيو::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