پورت باید روی چند قرار بدم برای اجرای وب سوکت در سرور مجازی؟
با دستور زیر اجرا میکنم اما دسترسی ندارم متاسفانه :
php artisan websockets:serve --port=8080
@ghomi2018 سلام مهندس لطفا به من هم کمک کنید مشکلم حل بشه
از laravel websockets استفاده کردم روی ssl کار نمیکنه
یک هفته هست که درگیر اینم
@nategit
چند تا تنظیمات داره شما باید آدرس تنظیمات ssl بهش بدین از wss استفاده کنین بجای ws
ابتدا وارد این پوشه کانفیگ و فایل websockets.php شو و cert , key آدرس هاشون وارد کن به شکل زیر :
'ssl' => [
/*
* Path to local certificate file on filesystem. It must be a PEM encoded file which
* contains your certificate and private key. It can optionally contain the
* certificate chain of issuers. The private key also may be contained
* in a separate file specified by local_pk.
*/
'local_cert' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT', '/usr/local/directadmin/data/users/admin/mobinaweb.com.cert'),
/*
* Path to local private key file on filesystem in case of separate files for
* certificate (local_cert) and private key.
*/
'local_pk' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_PK', '/usr/local/directadmin/data/users/admin/domains/mobinaweb.com.key'),
/*
* Passphrase for your local_cert file.
*/
'passphrase' => env('LARAVEL_WEBSOCKETS_SSL_PASSPHRASE', null),
'verify_peer' => false,
],
بعد توی همون دایرکتوری وارد فایل broadcasting.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,
'useTLS' => true,
'host' => '127.0.0.1',
'port' => 35000,
'scheme' => 'https',
'curl_options' => [
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => 0,
]
],
],
'redis' => [
'driver' => 'redis',
'connection' => 'default',
],
'log' => [
'driver' => 'log',
],
'null' => [
'driver' => 'null',
],
],
بعد وارد resources/js/bootstrap.js فایل شو و تنظیمات به شکل زیر انجام بده :
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
wsHost: window.location.hostname,
wsPort: 35000,
wssPort: 35000,
disableStats: true,
encrypted: true,
});
برای من روی پورت 35000 باز بود ولی سرور شمارو نمیدونم چک کنید کدوم پورت بازه.
موفق باشید
@ghomi2018 همه این کارهایی رو که گفتید انجام دادم ولی بازم حل نشد. چطوری میتونم بفهمم پورت 6001 باز هست یا نه؟
روی همین سرور با یک دامنه دیگه که http هست بدون مشکل اجرا میشه روی پورت 6001 ولی روی https کار نمیکنه
بله http کاملا قابل اچرا هست با پورت 6001 اما https باید پورت عوض بشه دقیق نمیدونم ولی فکر کنم باید آخرین عدد زوج باشه برای https
این مطلب توی یکی از سایت های خارج خوندم
دستور php artisan websockets:serve رو چطوری ران میکنید و چطور می خواهید درحال اجرا داشته باشی؟ ممنون میشم پلسخ بدید
@ghomi
توی این لینک توضیحات کامل داده خودش :
https://beyondco.de/docs/laravel-websockets/basic-usage/starting
اینکار توسط supervisor انجام میشه در سرور
یه سوال دیگه این ادرس
'local_cert' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT', '/usr/local/directadmin/data/users/admin/mobinaweb.com.cert')
رو از کجا و چجوری باید پیدا کنم
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟