01-04-2019, 07:21 PM | #1 |
تاريخ التسجيل: Feb 2019
العمر: 38
المشاركات: 1,149
التقييم: 10
|
تاريخ التسجيل: Feb 2019
العمر: 38
المشاركات: 1,149
التقييم: 10
ما هو Pusher واهميته للتطبيقات الآنية ؟
التطبيقات والتفاعلات الآنية بين الخادم والمستخدم أصبحت من الأمور التي نراها أكثر فأكثر في الويب وتطبيقات الهواتف بصفة عامة، خاصة بعد ظهور الويب سوكتس WebSockets التي تمكننا من فتح قناة (Channel) بيننا وبين الخادم لا تغلق إلا بعد انتهاء الإتصال، عكس بروتوكول HTTP الذي يقوم بغلق الإتصال بين المستخدم والخادم بعد كل طلبية Request.
العديد من الحلول بنيت على الويب سوكتس لتمنح المطورين بيئة وأداة جاهزة يعتمد عليها في بناء تطبيقات آنية Real-Time Applications، لعل أبرز هذه الحلول هو واجهة Pusher المعروفة والتي تستخدمها عدد من كبريات الشركات والمواقع العملاقة مثل نيويورك تايمز، Github، MailChimp وغيرها الكثير… ما هو Pusher ؟ Pusher هو واجهة API للقيام باتصالات آنية ثنائية الإتجاه (bi-directional) بكيفية سريعة، آمنة وسهلة بين الخادم والمستخدم بالإعتماد على بروتوكول WebSocket. العديد من المكتبات بلغات برمجة مختلفة تم تطويرها للتعامل مع واجهة Pusher، ولكن ما يهمنا في هذا الدرس هي المكبتة الخاصة ب PHP لنشر الأحداث (Publisher) من الخادم (Server Side Library) وكذلك سنحتاج مكتبة Pusher الخاصة بالجافاسكريبت للإستماع لهذه الأحداث (Subscriber) من واجهة المستخدم (Client Side Library). إظهار تنبيهات لزوار مدونتك عند نشر موضوع جديد لكي تضح فكرة Pusher أكثر سنحاول القيام بمثال عملي وهو إظهار تنبيهات لزوار مدونتك عند نشر مواضيع جديدة، تماما كما تفعل فيسبوك مثلا عند كل تعليق جديد على إحدى منشوراتك. هذا الفكرة قد تكون فعالة فقط في المواقع والمدونات التي تستظيف عشرات الزوار على الأقل في نفس الوقت. جدير بالذكر كذلك أنه لدينا فرصة لتجريب هذه الواجهة مجانا مع عدم إمكانية تجاوز 100 اتصال في وقت واحد، و إذا كنت ترغب في عدد اتصالات أكبر فعليك بالدفع واختيار العرض الذي يناسبك. في هذا المثال سنعمل على مدونة ووردبريس، وقبل البدء، أول ما عليك فعله هو التسجيل في الموقع الرسمي ل Pusher وبعد ذلك تدخل للوحدة التحكم ثم تقوم بإنشاء تطبيق جديد عن طريق الضغط على الزر Ceate New App. بعد إنشاء التطبيق ستتوفر على ثلاث معلومات مهمة هي التي ستمكنك من الإتصال بواجهة Pusher وهي : app_id، key، secret. تنصيب مكبتة Pusher PHP دائما أفضل استعمال composer لإدارة الحزم والتبعيات في PHP نظرا لسهولة استعماله وفعاليته مقارنة بتحميل واستدعاء المكتبات يدويا. لتحميل مكبتة Pusher PHP بواسطة composer نقوم بتنفيذ الأمر التالي في نافذة الأوامر CMD : $ composer require pusher/pusher-php-server 1 $ composer require pusher/pusher-php-server بعد تنفيذ هذا الأمر سيقوم composer بتحميل المكتبة ويقوم بإنشاء مجلد جديد اسمه vendor في نفس المسار الذي نفذنا فيه الأمر، في هذه الحالة داخل مجلد القالب. استدعاء المكتبة في ووردبريس هناك ما يسمى بال Hooks وهي بمثابة أحداث Events يتم انبثاقها عند كل حدث معين، وعند محاولة نشر موضوع معين في ووردبريس فإن عدة أحداث يتم انبثاقها من بينها:
إذن سنفتح الملف functions.php داخل القالب الذي نستخدمه، ثم نقوم بإضافة الشيفرة البرمجية التالية في آخره : function twentysixteen_new_post_published($post_id) { require __DIR__ . '/vendor/autoload.php'; $options = array( 'encrypted' => true ); $pusher = new Pusher( 'cbcb54ab5c24a9d35c13', '36a66d5322d4e572e8c1', '153419', $options ); $data = array( 'post_title' => get_the_title( $post_id ), 'post_url' => get_permalink( $post_id ), 'subject' => "تم نشر موضوع جديد" ); $pusher->trigger('test_channel', 'NewPostPublished', $data); } //عند نشر موضوع جديد، قم بتنفيذ الدالة twentysixteen_new_post_published add_action( 'auto-draft_to_publish', 'twentysixteen_new_post_published'); 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 function twentysixteen_new_post_published($post_id) { require __DIR__ . '/vendor/autoload.php'; $options = array( 'encrypted' => true ); $pusher = new Pusher( 'cbcb54ab5c24a9d35c13', '36a66d5322d4e572e8c1', '153419', $options ); $data = array( 'post_title' => get_the_title( $post_id ), 'post_url' => get_permalink( $post_id ), 'subject' => "تم نشر موضوع جديد" ); $pusher->trigger('test_channel', 'NewPostPublished', $data); } //عند نشر موضوع جديد، قم بتنفيذ الدالة twentysixteen_new_post_published add_action( 'auto-draft_to_publish', 'twentysixteen_new_post_published'); لنشرح الكود حتى تتضح الفكرة للجميع :
تنصيب مكتبة Pusher JavaScript استدعاء مكتبة الجافاسكريبت الخاصة بهذه الواجهة سهل للغاية، يكفي إضافة الكود التالي لمنطقة إضافة ملفات الجافاسكريبت في ملف functions.php : wp_enqueue_script( 'twentysixteen-pusher', 'https://js.pusher.com/3.1/pusher.min.js', array(), '', false ); 1 wp_enqueue_script( 'twentysixteen-pusher', 'https://js.pusher.com/3.1/pusher.min.js', array(), '', false ); المهم في هذا الصدد هو أن يكون هذا السطر قبل سطر تحميل ملف أكواد الجافاسكريبت الخاصة بك (نسميه مثلا main.js) وذلك على النحو التالي : wp_enqueue_script( 'twentysixteen-pusher', 'https://js.pusher.com/3.1/pusher.min.js', array(), '', false ); wp_enqueue_script( 'twentysixteen-script', get_template_directory_uri() . '/js/main.js', array( 'jquery' ), '', false ); 1 2 3 wp_enqueue_script( 'twentysixteen-pusher', 'https://js.pusher.com/3.1/pusher.min.js', array(), '', false ); wp_enqueue_script( 'twentysixteen-script', get_template_directory_uri() . '/js/main.js', array( 'jquery' ), '', false ); إذا كنت من المبتدئين في ووردبريس فعليك معاينة هذا الرابط لمعرفة كيفية إضافة أكواد الجافاسكريبت في الووردبريس. بعد استدعاء مكبتة pusher.js بنجاح سنفتح ملف main.js ونقوم بإضافة الكود التالي : var Pusher = new Pusher('cbcb54ab5c24a9d35c13', { encrypted: true }); var channel = pusher.subscribe('test_channel'); channel.bind('NewPostPublished', function(data) { alert(data.subject); }); 1 2 3 4 5 6 7 8 9 var Pusher = new Pusher('cbcb54ab5c24a9d35c13', { encrypted: true }); var channel = pusher.subscribe('test_channel'); channel.bind('NewPostPublished', function(data) { alert(data.subject); }); شرح الكود :
المصدر: منتديات رحيل لكل العرب - من قسم: قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress |
اقتباس |
أضف رد جديد |
الذين يشاهدون محتوى الموضوع الآن : 1 ( الأعضاء 0 والزوار 1) | |
|
|
المواضيع المتشابهه | ||||
الموضوع | كاتب الموضوع | المنتدى | مشاركات | آخر مشاركة |
ما هي فوائد واجهة Pusher | raheel | قسم تطوير المواقع ومحركات البحث والسيو Seo والووردبريس WordPress | 0 | 01-04-2019 04:32 PM |