اذهب إلى المحتوى
  • 0

Creating Real Time Notification System

محمود موسى2

السؤال

السلام عليكم, أريد عمل برمجية للإشعارات في موقعي.. أرغب بعرض إشعارات للمستخدمين داخل الموقع مثلا عند بلوغ رسالته 50 لايك اريد عرض له رسالة تهنئة في قسم الاشعارات ببلوغها 50 لايك وعند حظر رسالته اريد ارسال اشعار بحظر رسالته وهكذا

المشكلة ليست هنا بل اريد عمل برمجية تتابع قاعدة البيانات دائماً وعند تحقق شرط الاشعار المطلوب تقوم بارساله للشخص

مثال: فيسبوك عندما ترسل لنا اشعارات والهاتف مغلق كيف تعمل برمجيتهم والهاتف مغلق وتتابع عدد لايكات المنشور والتعليقات وهكذا؟ 

تم التعديل في بواسطة محمود رضا موسى
رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 0

للقيام بذلك يمكنك استخدام تقنية مثل firebase cloud messaging.

و هي تعمل كالتالي:

في بعض الحالات يكون من غير الممكن الاعتماد على أكواد ال client فقط، و من هذه الحالات:

  • عندما نريد ربط third party APIs مثل Twilio لإرسال رسائل SMS أو SendGrid لإرسال e-mails.
  • عندما يكون لديك متطلبات مصادقة متقدمة 
  • عندما تكون الأكواد الخاصة بك  computationally intensive و بالتالي لا يمكنك تنفيذها في جانب العميل، أو أنها تحتاج إلى خادم موثوق للعمل به

في هذه الحالات يمكنك استخدام Firebase بين الخادم و العميل. الخوادم الخاصة بك يمكنها أن تتصل مع firebase  و تتفاعل مع البيانات تمامًا مثل أي عميل آخر.بمعنى آخر الخادم الخاص بك سيتواصل مع العميل عن طريق التغيير في البيانات "manipulating data" في firebase.و ال Security and Firebase Rules language تتيح لك تعيين وصول كامل للبيانات الموجودة على الخادم الخاص بك.و الأكواد الخاصة بالخادم يمكنها أن تستمع لأي تغييرات تحدث على ال data عن طريق العميل و تجيب على هذه الغييرات بطريقة مناسبة.

 

 

client_server.png.1bac3424ab609369d6c175e70b187919.png

 

هنا على الرغم من أنك مازلت تستخدم خادم، إلّا أن firebase ستقوم بتولي أمر المهام الثقيلة عنك مثل ال scale و real-time updates.

و حتى تقوم بهذه العملية يمكنك أن تبحث عن مقالات أو سلاسل تعليمية حول هذا الأمر و ستجد العديد منها. إذا واجهتك أي مشاكل يمكنك أن تخبرنا و سنقوم بمساعدتك.

مثلًا يمكنك استدعاء ال API بواسطة PHP عن طريق الكود التالي، مع تغير key وtoken


<?php
define('API_ACCESS_KEY','Api key from Fcm add here');
 $fcmUrl = 'https://fcm.googleapis.com/fcm/send';
 $token='Token_Key';

     $notification = [
            'title' =>'title',
            'body' => 'body of message.',
            'icon' =>'myIcon', 
            'sound' => 'mySound'
        ];
        $extraNotificationData = ["message" => $notification,"moredata" =>'dd'];

        $fcmNotification = [
            //'registration_ids' => $tokenList, //multple token array
            'to'        => $token, //single token
            'notification' => $notification,
            'data' => $extraNotificationData
        ];

        $headers = [
            'Authorization: key=' . API_ACCESS_KEY,
            'Content-Type: application/json'
        ];


        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL,$fcmUrl);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fcmNotification));
        $result = curl_exec($ch);
        curl_close($ch);


        echo $result;

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...