Avatar ·

ما هو Long-Polling، WebSockets، SSE و Comet؟ كيفية التنفيذ على PHP؟

```html

مرحباً جميعاً! أنا مطور PHP مبتدئ، أقوم بكتابة دردشة بسيطة على موقع. حالياً كل شيء يعمل بهذه الطريقة: يرسل المستخدم رسالة عبر AJAX، ويتم حفظها في قاعدة البيانات، ويقوم المستخدمون الآخرون بتحديث الصفحة يدوياً (F5) لرؤية الرسائل الجديدة. هذا غير مريح للغاية!

سمعت أن هناك تقنيات للوقت الفعلي: Long-Polling، WebSockets، SSE و Comet. لكنني مرتبك في المصطلحات. حسب فهمي، Comet ليست تقنية، بل نمط (Pattern)؟

أحتاج إلى أن تظهر الرسائل الجديدة لجميع المستخدمين فوراً، دون إعادة تحميل الصفحة. أستخدم PHP 8.2، Apache و MySQL. أرشدوني، أي نهج يجب اختياره للدردشة؟ جربت حلاً بسيطاً باستخدام setInterval() كل ثانيتين، لكن الخادم بدأ يتباطأ مع 20 مستخدماً.

إليك جزء من الكود الحالي (التحقق من الرسائل الجديدة):

// check_new_messages.php
$lastId = $_GET['last_id'];
$stmt = $pdo->prepare("SELECT * FROM messages WHERE id > ? ORDER BY id ASC");
$stmt->execute([$lastId]);
$messages = $
```