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

السؤال

Recommended Posts

  • 0
نشر

في حال ستقوم بنشر المشروع على استضافة Vercel فلن تستطيع استخدام WebSockets في صورتها العادية مثل socket.io مدمج داخل API Routes لأن Vercel تعتمد على Serverless Functions، وتلك الدوال تعمل لثوانٍ معدودة لرد الطلب ثم تموت أي Stateless، بينما الـ WebSocket يحتاج اتصال دائم ومفتوح Stateful.

لذا ستحتاج إلى خدمة خارجية لإدارة الاتصال مثل Pusher أو Ably أو إنشاء سيرفر منفصل للـ Sockets.

وعلى الاستضافات الأخرى لا مشكلة، بدمج Express مع Next.js في نفس التطبيق واستخدام socket.io ولكن الأمر سيصبح معقد وستفقد بعض ميزات Next.js.

الأفضل تشغيل سيرفر Next.js بشكل طبيعي، وإنشاء سيرفر Express صغير منفصل مسؤول فقط عن الـ WebSockets.

والأسهل هو الإعتماد على خدمة سحابية مثل Pusher، حيث لن تحتاج لسيرفر Express وسيقوم Next.js بإرسال حدث إلى Pusher عند وصول طلب جديد، وPusher يتولى إرسال التنبيه للوحة التحكم فورًا.

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

في حال أردت عدم الإشتراك، فقم بإنشاء تطبيق Next.js بشكل عادي، ثم تنشئ سيرفر Node.js بسيط من خلال Express.js وظيفته فقط استقبال وإرسال التنبيهات.

  • 0
نشر

وعليكم السلام ورحمة الله وبركاته،

أولا ف Vercel لا يدعم WebSockets التقليدية مثل socket.io داخل API Routes بسبب اعتمادها على Serverless Functions التي تكون stateless وتنتهي بعد ثوان معدودة مما يمنع الاتصالات الدائمة المطلوبة ل WebSockets.

أما بالنسبة لنظام تتبع طلبات المطعم على Vercel الأفضل استخدام خدمة خارجية مثل Pusher أو Ably فلها باقة مجانية محدودة ثم مدفوعة حيث يرسل Next.js الأحداث إليها عبر HTTP وتتولى إشعار لوحة التحكم فورا دون سيرفر إضافي.

أو يمكنك إنشاء سيرفر Node.js/Express بسيط منفصل ل WebSockets فقط وانشره على Render أو Railway مع ربط Next.js به عبر عنوان السيرفر، وهذا سيحافظ على ميزات Vercel لل frontend.

  • 0
نشر
بتاريخ 18 دقائق مضت قال Mustafa Suleiman:

في حال ستقوم بنشر المشروع على استضافة Vercel فلن تستطيع استخدام WebSockets في صورتها العادية مثل socket.io مدمج داخل API Routes لأن Vercel تعتمد على Serverless Functions، وتلك الدوال تعمل لثوانٍ معدودة لرد الطلب ثم تموت أي Stateless، بينما الـ WebSocket يحتاج اتصال دائم ومفتوح Stateful.

لذا ستحتاج إلى خدمة خارجية لإدارة الاتصال مثل Pusher أو Ably أو إنشاء سيرفر منفصل للـ Sockets.

وعلى الاستضافات الأخرى لا مشكلة، بدمج Express مع Next.js في نفس التطبيق واستخدام socket.io ولكن الأمر سيصبح معقد وستفقد بعض ميزات Next.js.

الأفضل تشغيل سيرفر Next.js بشكل طبيعي، وإنشاء سيرفر Express صغير منفصل مسؤول فقط عن الـ WebSockets.

والأسهل هو الإعتماد على خدمة سحابية مثل Pusher، حيث لن تحتاج لسيرفر Express وسيقوم Next.js بإرسال حدث إلى Pusher عند وصول طلب جديد، وPusher يتولى إرسال التنبيه للوحة التحكم فورًا.

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

في حال أردت عدم الإشتراك، فقم بإنشاء تطبيق Next.js بشكل عادي، ثم تنشئ سيرفر Node.js بسيط من خلال Express.js وظيفته فقط استقبال وإرسال التنبيهات.

شكرا على الاجابة ولاكن انا هل يمكنني ان انشء السيرفر داخل مشروع النيكست بدون سيرفر خارجي انا هذه ملفاتي ولاكن لا يعمل 

 

بتاريخ 13 دقائق مضت قال ياسر مسكين:

وعليكم السلام ورحمة الله وبركاته،

أولا ف Vercel لا يدعم WebSockets التقليدية مثل socket.io داخل API Routes بسبب اعتمادها على Serverless Functions التي تكون stateless وتنتهي بعد ثوان معدودة مما يمنع الاتصالات الدائمة المطلوبة ل WebSockets.

أما بالنسبة لنظام تتبع طلبات المطعم على Vercel الأفضل استخدام خدمة خارجية مثل Pusher أو Ably فلها باقة مجانية محدودة ثم مدفوعة حيث يرسل Next.js الأحداث إليها عبر HTTP وتتولى إشعار لوحة التحكم فورا دون سيرفر إضافي.

أو يمكنك إنشاء سيرفر Node.js/Express بسيط منفصل ل WebSockets فقط وانشره على Render أو Railway مع ربط Next.js به عبر عنوان السيرفر، وهذا سيحافظ على ميزات Vercel لل frontend.

هل يمكنك ان تشرح لي الخدمات التي زكرتها

next-env.d.zip

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...