تأثير بروتوكول الاتصال

نظرًا لأن TCP يعتمد على التدفق ، فإن البيانات التي يرسلها العميل تتدفق إلى الخادم مثل مياه الشلال. بمجرد اكتشاف الخادم وصول البيانات ، يجب عليه التأكد مما إذا كانت البيانات كاملة ، لأنه قد يكون الوصول إلى جزء من طلب البيانات إلى الخادم ، أو حتى قد يكون عدة طلبات متصلة فيما بينها إلى الخادم. كيفية تحديد ما إذا كان الطلب قد وصل بالكامل أو فصل الطلبات من بيانات الطلبات المتصلة فيما بينها ، يتطلب تحديد مجموعة بروتوكولات اتصال.

لماذا يجب على Workerman وضع بروتوكول؟

تعتمد تطوير PHP التقليدي على الويب أساسًا على بروتوكول HTTP ، وتتم معالجة تفسير ومعالجة بروتوكول HTTP بواسطة خادم الويب بشكل منفصل ، لذلك لن يهتم المطور بأمور البروتوكول. ومع ذلك ، عندما نحتاج إلى تطوير بروتوكول غير HTTP ، سيحتاج المطور إلى النظر في مسائل البروتوكول.

البروتوكولات التي يدعمها Workerman بالفعل

في الوقت الحالي ، يدعم Workerman بالفعل بروتوكولات HTTP و websocket والبروتوكول النصي (انظر الشرح في المرفق) وبروتوكول الإطار (انظر الشرح في المرفق) ، وبروتوكول ws (انظر الشرح في المرفق) ، ويمكن استخدامه مباشرة عند الحاجة إلى التواصل باستخدام هذه البروتوكولات. الطريقة هي: عند تهيئة العامل ، يجب تحديد البروتوكول ، مثال:

use Workerman\Worker;
use Workerman\Connection\TcpConnection;
require_once __DIR__ . '/vendor/autoload.php';

// websocket://0.0.0.0:2345 يعني الاستماع إلى منفذ 2345 باستخدام بروتوكول WebSocket
$websocket_worker = new Worker('websocket://0.0.0.0:2345');

// بروتوكول النصي
$text_worker = new Worker('text://0.0.0.0:2346');

// بروتوكول الإطار
$frame_worker = new Worker('frame://0.0.0.0:2347');

// tcp Worker ، يعتمد مباشرة على نقل المأخذ ، دون استخدام أي بروتوكول طبقة التطبيق
$tcp_worker = new Worker('tcp://0.0.0.0:2348');

// udp Worker ، بدون استخدام أي بروتوكول طبقة التطبيق
$udp_worker = new Worker('udp://0.0.0.0:2349');

// unix domain Worker ، بدون استخدام أي برتوكول طبقة التطبيق
$unix_worker = new Worker('unix:///tmp/wm.sock');

استخدام بروتوكول الاتصال المخصص

عندما لا تكون بروتوكولات الاتصال المدعومة بواسطة Workerman كافية لتلبية احتياجات التطوير ، يمكن للمطورين تخصيص بروتوكولات الاتصال الخاصة بهم ، ويمكن الاطلاع على الطريقة في القسم التالي.

نصيحة:

يأتي Workerman مدمجًا مع بروتوكول النص الذي يتكون من نص + رمز تنقل. بروتوكول النص مناسب جدًا لتطوير وتصحيح التجهيز ، ويمكن استخدامه في معظم سيناريوهات البروتوكولات المخصصة. وهو متوافق مع عمليات التصحيح عبر telnet. إذا كان لدى المطور الرغبة في تطوير بروتوكول تطبيق خاص به ، فيمكن استخدام بروتوكول النص مباشرة دون الحاجة إلى تطوير منفصل.

يمكن الرجوع إلى شرح بروتوكول النص في "مرفق الجزء النصي"