WebSocket Chat

تتيح لك هذه الواجهة البسيطة إدخال رسالة وإرسالها إلى خادم WebSocket. سيتلقى جميع العملاء المتصلين الرسالة ويعرضونها.

الخطوة 5: اختبار اتصال WebSocket

  1. قم بتشغيل خادم WebSocket الخاص بك عن طريق تشغيل php start_server.php.
  2. افتح ملف Index.html في المتصفح.
  3. افتح نفس الصفحة في متصفح أو علامة تبويب أخرى لمحاكاة عملاء متعددين.

عند إرسال رسالة من عميل واحد، ستظهر في جميع متصفحات العملاء المتصلين.


مزايا استخدام WebSockets في PHP


حالات استخدام WebSockets في PHP


خاتمة

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

","image":"http://www.luping.net/uploads/20240930/172769436566fa861d5b103.jpg","datePublished":"2024-11-06T15:21:16+08:00","dateModified":"2024-11-06T15:21:16+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فهم WebSockets في PHP

فهم WebSockets في PHP

تم النشر بتاريخ 2024-11-06
تصفح:809

Understanding WebSockets in PHP

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

في هذا الدليل، سنستكشف WebSockets، وكيفية عملها، وكيفية تنفيذها في PHP.


ما هي WebSockets؟

يتيح WebSockets الاتصال التفاعلي بين متصفح الويب (أو أي عميل آخر) والخادم. فيما يلي الجوانب الرئيسية لـ WebSockets:

  1. اتصال مزدوج كامل: يمكن لكل من العميل والخادم إرسال رسائل إلى بعضهما البعض في أي وقت، مما يجعل الاتصال أكثر كفاءة من استقصاء HTTP التقليدي.
  2. الاتصال المستمر: بمجرد إنشائه، يظل اتصال WebSocket مفتوحًا حتى يتم إغلاقه بشكل صريح من قبل العميل أو الخادم.
  3. زمن الاستجابة المنخفض: نظرًا لأن WebSockets تلغي الحاجة إلى فتح اتصالات جديدة لكل طلب، فإنها تقلل زمن الوصول، مما يجعلها مثالية للاتصال في الوقت الفعلي.

كيفية عمل WebSockets

  1. المصافحة: يبدأ الاتصال بطلب HTTP. يرسل العميل طلب HTTP برأس ترقية لتبديل الاتصال من HTTP إلى WebSockets.
  2. تم إنشاء الاتصال: بمجرد أن يقر الخادم بالمصافحة، يتم إنشاء الاتصال، ويمكن لكل من العميل والخادم البدء في إرسال الرسائل واستلامها.
  3. المراسلة: يتم نقل البيانات من خلال الإطارات، وهي خفيفة الوزن ويمكن إرسالها ذهابًا وإيابًا دون تحميل رؤوس HTTP.
  4. إنهاء الاتصال: يمكن للعميل أو الخادم إنهاء الاتصال.

متى يتم استخدام WebSockets

  • تطبيقات الوقت الفعلي: مثل تطبيقات الدردشة والإشعارات المباشرة والتحرير التعاوني.
  • الألعاب: للألعاب متعددة اللاعبين عبر الإنترنت حيث تكون التحديثات المتكررة ضرورية.
  • الخلاصات المباشرة: بث أسعار الأسهم أو النتائج الرياضية أو البيانات في الوقت الفعلي من أجهزة إنترنت الأشياء.
  • أدوات التعاون: لتطبيقات مثل محرّر مستندات Google حيث يحتاج العديد من المستخدمين إلى رؤية التحديثات في الوقت الفعلي.

تنفيذ WebSockets في PHP

لتنفيذ WebSockets في PHP، يمكنك استخدام مكتبة مثل Ratchet، وهي مكتبة PHP مصممة خصيصًا للاتصال ثنائي الاتجاه في الوقت الفعلي باستخدام WebSockets.


تنفيذ WebSocket خطوة بخطوة باستخدام السقاطة

الخطوة 1: تثبيت السقاطة عبر الملحن

أولاً، تحتاج إلى تثبيت مكتبة Ratchet. بافتراض أن برنامج Composer مثبت لديك، يمكنك تشغيل الأمر التالي:

composer require cboden/ratchet

الخطوة 2: إنشاء خادم WebSocket في PHP

لنقم بإنشاء خادم WebSocket بسيط يتعامل مع الاتصالات والرسائل.

  1. إنشاء فئة خادم WebSocket في WebSocketServer.php:
clients = new \SplObjectStorage;
    }

    // Called when a new client connects
    public function onOpen(ConnectionInterface $conn) {
        $this->clients->attach($conn);
        echo "New connection: ({$conn->resourceId})\n";
    }

    // Called when a client sends a message
    public function onMessage(ConnectionInterface $from, $msg) {
        echo "New message: $msg\n";

        foreach ($this->clients as $client) {
            if ($from !== $client) {
                // Send the message to everyone except the sender
                $client->send($msg);
            }
        }
    }

    // Called when a connection is closed
    public function onClose(ConnectionInterface $conn) {
        $this->clients->detach($conn);
        echo "Connection closed: ({$conn->resourceId})\n";
    }

    // Called if an error occurs
    public function onError(ConnectionInterface $conn, \Exception $e) {
        echo "Error: {$e->getMessage()}\n";
        $conn->close();
    }
}

تطبق هذه الفئة واجهة messageComponentInterface الخاصة بـ Ratchet، والتي تحدد طرق التعامل مع الاتصالات الجديدة والرسائل الواردة والاتصالات المغلقة والأخطاء.

الخطوة 3: تشغيل خادم WebSocket

إنشاء سكريبت PHP جديد لبدء تشغيل خادم WebSocket، على سبيل المثال، start_server.php.

run();

يمكنك بدء تشغيل الخادم عن طريق تشغيل هذا البرنامج النصي:

php start_server.php

سيتم الآن تشغيل الخادم على ws://localhost:8080.

الخطوة 4: إنشاء واجهة أمامية للاتصال بخادم WebSocket

الآن، لنقم بإنشاء ملف HTML باستخدام jQuery وJavaScript للاتصال بخادم WebSocket.

  1. إنشاء ملف HTMLindex.html:


    WebSocket Chat

WebSocket Chat

تتيح لك هذه الواجهة البسيطة إدخال رسالة وإرسالها إلى خادم WebSocket. سيتلقى جميع العملاء المتصلين الرسالة ويعرضونها.

الخطوة 5: اختبار اتصال WebSocket

  1. قم بتشغيل خادم WebSocket الخاص بك عن طريق تشغيل php start_server.php.
  2. افتح ملف Index.html في المتصفح.
  3. افتح نفس الصفحة في متصفح أو علامة تبويب أخرى لمحاكاة عملاء متعددين.

عند إرسال رسالة من عميل واحد، ستظهر في جميع متصفحات العملاء المتصلين.


مزايا استخدام WebSockets في PHP

  • التحديثات في الوقت الفعلي: توفر WebSockets تحديثات في الوقت الفعلي دون تحميل استقصاء HTTP.
  • زمن استجابة أقل: نظرًا لأن الاتصال يظل مفتوحًا، يمكن إرسال الرسائل على الفور، مما يقلل زمن الاستجابة.
  • الاتصال ثنائي الاتجاه: يمكن لكل من الخادم والعميل إرسال رسائل لبعضهما البعض في وقت واحد، على عكس HTTP التقليدي حيث يتم بدء الاتصال من قبل العميل.

حالات استخدام WebSockets في PHP

  • تطبيقات الدردشة: WebSockets مثالية لتطبيقات الدردشة في الوقت الفعلي حيث يلزم إرسال الرسائل على الفور إلى جميع المستخدمين.
  • الإشعارات المباشرة: للتطبيقات التي تحتاج إلى دفع الإشعارات المباشرة (مثل وسائل التواصل الاجتماعي وأسعار الأسهم).
  • أدوات تعاونية في الوقت الفعلي: تتيح WebSockets التعاون في الوقت الفعلي، مثل التحرير المباشر للمستندات.
  • الألعاب عبر الإنترنت: تستفيد الألعاب متعددة اللاعبين عبر الإنترنت من اتصال WebSockets منخفض زمن الوصول.

خاتمة

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

بيان الافراج تم نشر هذه المقالة على: https://dev.to/mdarifulhaque/understanding-websockets-in-php-2cli?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3