تكامل Laravel و Pusher لإضافة إشعارات الويب بنظام فوري
في عالم تطوير الويب المعاصر، تصبح تجارب المستخدم أكثر تفاعلية ومبتكرة من خلال استخدام تقنيات حديثة. يعد Laravel و Pusher واحدة من الجمعيات الملهمة لتحقيق تلك التجارب الرائعة. دعنا نستكشف كيفية إنشاء إشعارات عبر الويب باستخدام Laravel وقنوات Pusher بشكل مفصل.
في البداية، Laravel يعد إطار عمل PHP قويًا وشهيرًا يوفر هيكل تطويري رائع، والذي يسهل عليك بناء تطبيقات الويب بسرعة وكفاءة. إحدى ميزاته الرائعة هي نظام الإشعارات الذي يمكنك من تقديم تجربة مستخدم متطورة.
-
تطوير الوحدات والذكاء الاصطناعي في Unity3D27/01/2024
أما بالنسبة لـ Pusher، فيعتبر نظامًا للتواصل الفوري بين الخوادم والعملاء، وهو يوفر قنوات اتصال حية (real-time channels) لتحقيق تحديثات فورية دون الحاجة إلى إعادة تحميل الصفحة.
لبدء تكامل Laravel مع Pusher، يجب أولاً تثبيت حزمة Pusher من خلال Composer. بعد ذلك، يتعين عليك تكوين ملف .env الخاص بتطبيق Laravel الخاص بك بمعلومات Pusher الصحيحة.
ثم، يمكنك إنشاء حدث (event) في Laravel يحتوي على المعلومات التي ترغب في إرسالها إلى العميل عند حدوث حدث معين. يتم ذلك بواسطة تنفيذ الواجهة ShouldBroadcast على الحدث وتحديد قناة البث (broadcast channel).
تابع ذلك بكتابة قناة البث باستخدام Pusher، حيث تقوم بتقديم البيانات من الخادم إلى العميل في الوقت الفعلي. بمجرد القيام بذلك، يمكن للعميل الاشتراك في القناة واستلام التحديثات عبر WebSocket.
تكمن القوة في هذه الطريقة في قدرتك على توفير إشعارات فورية للمستخدمين دون الحاجة إلى تحديث الصفحة. يمكن استخدام هذه التقنية لتنبيه المستخدمين حول أحداث هامة، مثل استلام رسائل جديدة أو تحديثات في الوقت الحقيقي لأي نشاط يتم في التطبيق.
من خلال استخدام Laravel و Pusher بشكل متكامل، يمكنك إضافة عنصر مبتكر وتفاعلي إلى تطبيق الويب الخاص بك، مما يعزز تجربة المستخدم ويجعل التفاعل مع التطبيق أكثر سلاسة وفعالية.
المزيد من المعلومات
بالطبع، دعونا نقوم بتوسيع المعلومات حول كيفية إنشاء إشعارات عبر الويب باستخدام Laravel و Pusher بشكل أكثر تفصيلاً.
أولاً، يجب أن تقوم بتثبيت حزمة Pusher عبر Composer في Laravel. يمكنك القيام بذلك بتشغيل الأمر التالي في سطر الأوامر:
bashcomposer require pusher/pusher-php-server
بعد ذلك، قم بإعداد البيئة الخاصة بك في ملف .env
لاستخدام خدمة Pusher. يجب أن يحتوي ملف .env
على معلومات مثل مفتاح التطبيق ومفتاح الوصول والسر الخاص بـ Pusher. على سبيل المثال:
dotenvPUSHER_APP_ID=your-app-id PUSHER_APP_KEY=your-app-key PUSHER_APP_SECRET=your-app-secret PUSHER_APP_CLUSTER=your-app-cluster
ثم، قم بإعداد الحدث الذي ترغب في بثه. يمكنك إنشاء حدث باستخدام الأمر Artisan:
bashphp artisan make:event NewNotificationEvent
ستجد الملف الذي تم إنشاءه في app/Events
ويمكنك تعديله ليحتوي على البيانات التي ترغب في بثها. قد يكون شكله مثل هذا:
phpclass NewNotificationEvent implements ShouldBroadcast
{
public $message;
public function __construct($message)
{
$this->message = $message;
}
public function broadcastOn()
{
return new Channel('notifications');
}
}
يحتوي هذا الحدث على خاصية $message
التي سترسلها إلى العميل، ويتم بثه على قناة بث تسمى ‘notifications’.
بمجرد إنشاء الحدث، يجب عليك تحديد كيف ستتم معالجة هذا الحدث. يمكن أن يكون ذلك في أي مكان يحدث فيه حدث معين. على سبيل المثال، في وحدة التحكم (Controller) أو في الطبقة المسؤولة عن المنطقة الخاصة بالتطبيق.
بعد ذلك، ستحتاج إلى إعداد قناة Pusher لتسهيل التواصل بين الخادم والعميل. يمكنك إنشاء ملف broadcasting.php
في مجلد config
وتكوينه كالتالي:
php'connections' => [
'pusher' => [
'driver' => 'pusher',
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'app_id' => env('PUSHER_APP_ID'),
'options' => [
'cluster' => env('PUSHER_APP_CLUSTER'),
'encrypted' => true,
],
],
],
أخيرًا، في الجانب العميل، يجب عليك الاشتراك في القناة واستخدام JavaScript للتعامل مع الإشعارات عند استلامها. يمكن أن يكون الكود في نهاية صفحة HTML الخاصة بك كالتالي:
html<script src="https://js.pusher.com/7.0/pusher.min.js">script>
<script>
var pusher = new Pusher('{{ env("PUSHER_APP_KEY") }}', {
cluster: '{{ env("PUSHER_APP_CLUSTER") }}',
encrypted: true
});
var channel = pusher.subscribe('notifications');
channel.bind('NewNotificationEvent', function(data) {
alert('New Notification: ' + data.message);
// يمكنك تخصيص الإشعار حسب احتياجاتك، مثل استخدام مكتبة تنبيهات مثل Toastr أو تطبيق تصميم الواجهة الخاص بك.
});
script>
بهذا، يمكنك تحقيق نظام إشعارات فعّال عبر الويب باستخدام Laravel و Pusher. يمكنك تكامل هذا المفهوم في تطبيق الويب الخاص بك لتوفير تجربة مستخدم مثيرة وفعّالة في الوقت الفعلي.