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

خطأ عند إستخدام Laravel Websockets في Homestead

Mahmoud Alrashidi

السؤال

أنا أستخدم حزمة 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...