RRQMSocket هو إطار خدمة اتصالات شبكة متكامل وخفيف الوزن للغاية. يتميز بخصائص الاتصالات المتزامنة العالية، والمعالجة المتزامنة العالية، والاشتراك في الأحداث، وملحقات المكونات الإضافية، ومعالجة الخيوط المتعددة، وتجمع الذاكرة، وتجمع الكائنات، وما إلى ذلك، مما يسمح للمستخدمين ببناء إطار عمل شبكة أكثر بساطة وسرعة. فيما يتعلق بكفاءة النقل، يمكن أن يصل النقل المتزامن إلى 20 وات/ثانية، ويمكن أن يصل الإرسال غير المتزامن إلى 60 وات/ث. تعتمد كفاءة الاستقبال والمعالجة للخادم على عدد سلاسل الرسائل.
بيئة الدعم:
.NET Framework 4.5 وما فوق.
.NETCore3.1 وما فوق.
.NETStandard2.0 وما فوق.
الأطر المدعومة:
WPF
وينفورم
بليزر
زامارين
كثرة الوحيدات
الوحدة
أخرى (أي جميع أنظمة C#)
سمات:
1. تجمع الكائنات
تحتوي تجمعات الكائنات على العديد من التطبيقات في RRQMSocket، وأهمها هما تجمع كائنات الاتصال وتجمع كائنات المعالجة. يعني تجمع كائنات الاتصال أنه عندما يتصل العميل بنجاح، فإنه سيبحث أولاً عن TcpSocketClient في تجمع كائنات الاتصال، ثم يقوم بإنشائه إذا لم يكن موجودًا. إذا أصبح العميل غير متصل بالإنترنت، فستتم إعادة استخدام TcpSocketClient الخاص به. هذا هو سبب إعادة استخدام الهوية.
ثم هناك تجمع كائنات المعالجة في RRQMSocket، يتم فصل الخيط الذي يتلقى البيانات وخيط IOCP kernel، على سبيل المثال، يرسل العميل 10000 قطعة من البيانات إلى الخادم، لكن الخادم يعالجها ببطء شديد بعد الاستلام. ومن ثم فإن iocp التقليدي سيبطئ بالتأكيد معدل الاستلام، ثم يخطر نافذة TCP الخاصة بالعميل بحدوث الازدحام، ثم يسمح للعميل بتعليق الإرسال. ومع ذلك، في RRQMSocket، سيتم تخزين جميع البيانات المستلمة في قائمة الانتظار، أولاً، لن يؤثر ذلك على استقبال iocp Lake"، والتي يمكن أن تحسن بشكل كبير القدرة على معالجة البيانات.
2. خيوط متعددة
نظرًا لوجود تجمع كائنات المعالجة، تصبح المعالجة متعددة الخيوط بسيطة. عند اكتمال اتصال العميل، سيتم تعيين مؤشر الترابط المنطقي لمعالجة الرسائل للفئة المساعدة للعميل (TcpSocketClient) تلقائيًا. إذا كان عدد سلاسل عمليات الخادم 10، فسيتم تعيين العميل المتصل الأول إلى مؤشر الترابط 0، وسيتم تعيين الاتصالات الثانية. يتم تخصيصها للخيط رقم 1 وهكذا بشكل دائري. عندما يتلقى العميل البيانات، فإنه سيضع البيانات في قائمة الانتظار المملوكة للخيط الحالي وينشط الخيط للتنفيذ.
3. IOCP التقليدي وRRQMSocket
يختلف IOCP الخاص بـ RRQMSocket أيضًا عن النموذج التقليدي. على سبيل المثال، يتم استخدام MemoryBuffer لفتح الذاكرة، ثم تقسيمها بالتساوي، ثم تخصيص منطقة لكل جلسة لتلقي البيانات البيانات، وقم بعمل نسخة أخرى، ثم قم بنسخها. معالجة رمي البيانات. يأخذ RRQMSocket كتلة ذاكرة متاحة من مجمع الذاكرة قبل كل عملية استقبال، ثم يستخدمها مباشرة للاستقبال، وبعد تلقي البيانات، يقوم برمي كتلة الذاكرة مباشرة، وبالتالي تجنب عملية النسخ، على الرغم من أنها عملية صغيرة فقط ، ولكن عند إرسال بيانات بحجم 64 كيلو بايت بمعدل 1000 واط، يختلف الأداء بمقدار 10 مرات. وبناء على ذلك فإن كفاءة نقل الملفات ستكون عالية.
4. محول معالجة البيانات
أعتقد أن الجميع قد استخدموا منتجات مقبس أخرى، مثل HPSocket وSuperSocket وما إلى ذلك، لذا فإن تصميم RRQMSocket يعتمد أيضًا على مفاهيم التصميم الممتازة للمنتجات الأخرى، ومحول معالجة البيانات هو واحد منها، ولكن ما هو مختلف عن تصميم المنتجات الأخرى هو أن وظيفة المحول RRQMSocket أكثر قوة، حيث يمكنها تجاهل البيانات الحقيقية ومحاكاة البيانات المطلوبة، على سبيل المثال، يمكنها معالجة البيانات مسبقًا لحل مشكلة حزم البيانات. لحل مشكلة الحزم اللاصقة، يمكنك أيضًا تحليل بروتوكول HTTP مباشرةً وإرجاع كائن HttpRequest بعد معالجته بواسطة المحول.
5. الحزم الثابتة وحلول التعاقد من الباطن
من السهل جدًا التعامل مع مشاكل التصاق حزم TCP والحزم الفرعية في RRQMSocket. ما عليك سوى تغيير محولات معالجة البيانات المختلفة. على سبيل المثال: لاستخدام الرؤوس الثابتة، ما عليك سوى تعيين مثيلات FixedHeaderDataHandlingAdapter إلى TcpSocketClient وTcpClient. يحتوي المعالج المقابل أيضًا على طول ثابت، وتجزئة أحرف الإنهاء، وما إلى ذلك.