[英]Laravel websockets and amazon web service (AWS)
我正在嘗試使用 EC2 實例 ubuntu 服務器將我的 laravel 應用程序與laravel websockets一起部署。
但是當我嘗試使用php artisan websockets:serve
時,我希望在連接時看到一些控制台日志,但我只收到一條信息
在端口 6001 上啟動 WebSocket 服務器...
我嘗試通過訪問example.com/laravel-websockets
來調試數據。 它只會返回
WebSocket 在連接建立之前關閉
我只是很困惑 laravel-websocket 是否可以部署到亞馬遜 web 服務 ec2 實例,或者是否需要對 aws 進行任何配置才能運行這個 laravel-websockets?
客戶端
import Echo from "laravel-echo"
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: VUE_APP_PUSHER_APP_KEY,
wsHost: VUE_APP_PUSHER_HOST,
wsPort: 6001,
wssPort: 6001,
disableStats: true,
enabledTransports: ['ws', 'wss'],
encrypted:true,
});
配置/廣播.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'),
'host' => '127.0.0.1',
'port' => 6001,
'scheme' => 'https',
'curl_options' => [
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => 0,
]
],
],
Websocket 響應
這是我的 bootstrap.js 配置:使用 window.location.hostname,用於 ws 和 wss 端口。
和普通的鑰匙。
另外,檢查 ec2 實例是否阻止 6001 端口。
import Echo from "laravel-echo"
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: '1234567890',
wsHost: window.location.hostname,
wsPort: 6001,
wssHost: window.location.hostname,
wssPort: 6001,
disableStats: true,
enabledTransports: ['ws', 'wss'],
});
嘗試查看端口是否正在偵聽:
netstat -tpunl | grep 6001
如果它在那里。 我認為 EC2 實例服務器禁用外部訪問端口 6001。
您需要在ec2 安全組中打開 6001 端口。
還需要在 EC2 實例的防火牆上打開相同的端口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.