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

السؤال

نشر

أنا أستخدم حزمة beyondcode / laravel-websockets وأحاول بدء تشغيل خادم websockets على Homestead. قمت بتثبيت الحزمة لكن عند تنفيذ الأمر:

php artisan websockets:serve

يُعطي الخطأ التالي:

Starting the WebSocket server on port 6001...

   RuntimeException  : Failed to listen on "tcp://0.0.0.0:6001": Address already in use

  at /home/vagrant/code/websockets/vendor/react/socket/src/TcpServer.php:164
    160|             \STREAM_SERVER_BIND | \STREAM_SERVER_LISTEN,

كيف يُمكن حل هذه المُشكلة.

Recommended Posts

  • 1
نشر

يبدو أن المنفذ الإفتراضي الذي يتم تشغيل خادم websockets عليه من طرف الحزمة قيد التشغيل من طرف برنامج آخر أو Process آخر لذلك عليك تغييره لمنفذ لايتم إستخدامه حيث أنه يُمكن تمرير flag للأمر عن طريق --port  و تمرير المنفذ الذي تريد بهذا الشكل:

php artisan websockets:serve --port={port}

مثال:

php artisan websockets:serve --port=3030

كما يُمكن أيضاً تغيير المنفذ من خلال ملف إعدادات الحزمة عن طريق نشر الملف ضمن مجلد الإعدادات:

php artisan vendor:publish --provider="BeyondCode\LaravelWebSockets\WebSocketsServiceProvider" --tag="config"

بعد ذلك يُمكنك تغيير السطر:

'dashboard' => [
  'port' => env('LARAVEL_WEBSOCKETS_PORT', 6001),
],

لاحظ أنه 6001 يُمكنك تغييره او إسناد قيمة ل LARAVEL_WEBSOCKETS_PORT في ملف env.

  • 0
نشر

يبدو أن المنفذ الحالي قيد الاستخدام من قبل النظام. لذلك أثناء تنفيذ الأمر يمكنك تمرير أي رقم منفذ آخر كالتالي:

php artisan websockets:serve --port=7000

وأيضاً، بنفس الطريقة تتيح المكتبة تحديد رقم IP Address محدد ليتم التشغيل عليه، وذلك مفيد في حالات الحماية من تشغيل أو إيقاف السيرفر وتقيّده على رقم IP Address محدد بالشكل التالي:

php artisan websockets:serve --host=127.0.0.1

 

  • 0
نشر

إذا قمت بعرض الملف config/websockets.php في الكود المصدري لـ Laravel WebSockets، ستجد أن الـ default port او المنفذ الافتراضي للمكتبة هو 6001.

<?php

return [

	'dashboard' => [
		'port' => env('LARAVEL_WEBSOCKETS_PORT', 6001),

وحدد استثناء وقت التشغيل أن هذا المنفذ قيد الاستخدام بالفعل. كل ما عليك فعله هو إما معرفة ما يتم تشغيله على المنفذ 6001 وإيقافه، أو تغيير المنفذ لخادم WebSocket الخاص بك إلى أي منفذ آخر ليس قيد التشغيل.

إذا كنت تريد التحقق مما يتم تشغيله على المنفذ 6001 الذي يحظر تشغيلك على Linux، فيمكنك القيام بما يلي:

# يمكنك تغيير 6001 بأي رقم منفذ للتحقق من المضيف الذي يستخدمه
sudo lsof -i:6001

أو قم بتشغيل الخادم الخاص بك على منفذ مختلف باستخدام:

php artisan websockets:serve --port=3030

 

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...