Zen Eddin Allaham نشر الاثنين في 16:23 أرسل تقرير نشر الاثنين في 16:23 اواجه مشكلة غريبة لم افهم سبب حيث ان الرسائل تعمل بشكل عادي وفي الوقت الفعلي (Realtime) لكن الاشعارات لا تعمل في الوقت الفعلي ولم افهم ما تفسير وما السبب في ذلك حيث راجعت اهم ملفات والتي هي : backend : socket.adapter.ts, notification.gateway.ts , notification-socket.gateway.ts , main.ts frontend: socket.ts, useNotification.ts, useNotificationStore.ts وللعلم اني ارسل احداث في notification.service.ts وايضا قمت ب ازالة Redis حتى اكتشف هل هو تاخر بسبب redis لكن ايضا لم تكم مشكلة في ذلك ارفقت لكم المشروع وارجوا مساعدتي حل مشكلة Orvexa.zip اقتباس
0 Mustafa Suleiman نشر منذ 12 ساعة أرسل تقرير نشر منذ 12 ساعة سلسلة الإشعارات في الوقت الفعلي بها مشكلة، لأن الـ Socket لم يكن يُتصل في الـ Frontend حيث useNotificationStore.connect() و useMessageStore.connect() موجودان، لكن لا يُستدعيان من أي مكان في التطبيق. بدون استدعاء connect(): لا يتصل الـ socket بالـ backend لا تُسجل listeners لـ receive-notification لا يظهر toast ولا يتحدث العداد وصفحة المحادثة تستخدم polling كل 10 ثوانٍ، وليس socket لذلك الرسائل تبدو تعمل لأنها تُحدث دورياً، وليس لأن WebSocket يعمل للرسائل. والجرس يستخدم myNotifications من الـ hook وهو state محلي يُحمل مرة عند mount، وليس من useNotificationStore الذي يستقبل أحداث الـ socket. والـ NotificationGateway مسجّلاً في مكانين: NotificationModule AppModule وذلك ينشئ نسختين من الـ gateway، النسخة التي يستدعيها NotificationService.sendNotification() قد تكون مختلفة عن التي تستقبل الاتصالات، فيبقى onlineUsers فارغاً ويظهر في اللوج: User not online. وفي الـ Backend شكل الـ payload خاطئ: { receiverId, type, message, data: notification } بينما الـ frontend يتوقع INotification كاملة مع id في الجذر: socket.on("receive-notification", (notification: INotification) => { const exists = state.notifications.some( (item) => item.id === notification.id, ); بدون id، فحص التكرار undefined === undefined يمنع الإشعارات التالية من الظهور. عليك إصلاح ما سبق، ولو أردت رسائل حقيقية عبر WebSocket بدون polling 10 ثوانٍ، يمكن تحديث صفحة العقد لاستخدام useMessageStore و receive-message. اقتباس
السؤال
Zen Eddin Allaham
اواجه مشكلة غريبة لم افهم سبب حيث ان الرسائل تعمل بشكل عادي وفي الوقت الفعلي (Realtime) لكن الاشعارات لا تعمل في الوقت الفعلي ولم افهم ما تفسير وما السبب في ذلك حيث راجعت اهم ملفات والتي هي :
backend : socket.adapter.ts, notification.gateway.ts , notification-socket.gateway.ts , main.ts
frontend: socket.ts, useNotification.ts, useNotificationStore.ts
وللعلم اني ارسل احداث في notification.service.ts وايضا قمت ب ازالة Redis حتى اكتشف هل هو تاخر بسبب redis لكن ايضا لم تكم مشكلة في ذلك
ارفقت لكم المشروع وارجوا مساعدتي حل مشكلة
Orvexa.zip
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.