غرف الدردشة عبر الإنترنت هي منصة عبر الإنترنت للتواصل مع العديد من الأشخاص. مع اختراع ونضج المزيد والمزيد من التقنيات الجديدة ، استخدمت غرف الدردشة عبر الإنترنت أيضًا العديد من التقنيات. أود أن ألخص هذا المقال بإيجاز.
بادئ ذي بدء ، دعنا نتحدث عن التكنولوجيا الأمامية. أحدث واحدة هي بالطبع WebSocket المستندة إلى HTML5 ، والتي تنفذ الاتصالات الكاملة بين المتصفح والخادم. تم تعيين بروتوكول اتصال WebSocket على أنه RFC 6455 القياسي من قبل IETF في عام 2011 ، وتم تعيين WebSocket API كمعيار بواسطة W3C. في واجهة برمجة تطبيقات WebSocket ، يحتاج المتصفح والخادم إلى مصافحة فقط ، ثم يتم تشكيل قناة سريعة بين المتصفح والخادم. يمكن نقل البيانات مباشرة بين الاثنين. ومع ذلك ، نظرًا لأن WebSocket عبارة عن واجهة برمجة تطبيقات HTML5 ، فإن العديد من المتصفحات ليس لديها دعم بعد ، لذلك لا يتم استخدام هذه الطريقة بشكل خاص الآن. النوع الثاني هو AJAX. يعتمد طريقة الاقتراع. بين الحين والآخر ، تذهب إلى الخادم لتنزيل البيانات والتحقق مما إذا كان تم تحديثه. ميزتها هي معالجة الطلبات غير المتزامنة (يمكن أيضًا إعداد التزامن) ولن تمنع عمليات المستخدم الأخرى. العيب هو أن الاقتراع غير المتوقف لا يستهلك النطاق الترددي فحسب ، بل يشغل أيضًا الكثير من موارد الطرفي والخادم. علاوة على ذلك ، نظرًا لوجود فترة زمنية لاستطلاع Ajax ، فإن الرسائل التي تم الحصول عليها ليست في الوقت الفعلي ، لأنها ليست مشغل رسالة ، وكفاءة Ajax هي الأقل. النوع الثالث هو تقنية الدفع القائمة على الخادم (COMET). يطلق عليه Push ، لكنه في الواقع الدفع الزائف. المبدأ هو إنشاء علاقة طويلة بين المحطة والخادم. يحصل مكتب الاستقبال على المحتوى من خلال تحديد ما إذا كان محتوى هذا الاتصال الطويل قد تغير. مصلحتها هي أنها تشغل موارد أقل ولديها أداء جيد في الوقت الفعلي. يتطلب دعمًا خاصًا من الخادم ويحتل اتصالًا لفترة طويلة. الآن المزيد والمزيد من الخدمات تتبنى هذه التكنولوجيا.
دعنا نتحدث عن الخلفية. غرف الدردشة هي تطبيقات IO عالية ، وقد تكون قاعدة البيانات أكبر عنق الزجاجة. سمة الدردشة هي أن هناك العديد من النصوص القصيرة ، على غرار Weibo. علاوة على ذلك ، فإنه ينتمي إلى نظام متعدد المستخدمين. عندما يصل المستخدم إلى ترتيب من حيث الحجم ، إذا تم استخدام قاعدة بيانات علائقية مثل MySQL ، فيجب أن يكون ضغط الاستعلام مرتفعًا جدًا. إذا لم تكن هناك متطلبات خاصة ، أعتقد شخصياً أن سجلات الدردشة لا تحتاج إلى تخزينها بشكل دائم. في هذا الوقت ، يمكن أن تلعب أنظمة التخزين القائمة على الذاكرة مثل Memcache و Redis دورًا. فيما يلي غرفة دردشة بسيطة عبر الإنترنت تعتمد على AJAX+PHP+Memcache التي طورتها.
في غرفة الدردشة هذه ، يتم تخزين جميع سجلات الدردشة في Memcache. يتم تخزين الحد الأقصى لمعرف سجلات الدردشة باستخدام CID ويتم تخزين سجلات الدردشة باستخدام MSGCID. لكل سجل مدرج ، سيتم زيادة CID بمقدار 1. يحصل مكتب الاستقبال على بيانات تنسيق JSON من خلال AJAX. نظرًا لأن Memcache يعتمد على الذاكرة ، فإن النظام العام يعمل بسرعة كبيرة. فيما يلي رمز المصدر للنظام. لا يوجد سوى ملفان في النظام بأكمله ، والذين يقل عددهم عن 10 كيلو بايت معًا.
Wulin.com تنزيل
https://github.com/hitoy/online-chatroom
متطلبات النظام:
1. تم تثبيت Memcache
2. قم بتثبيت امتداد Memcache على PHP
3. المتصفحات الحديثة التي تدعم جافا سكريبت وأجاكس