【发布时间】:2020-12-30 06:31:44
【问题描述】:
我正在尝试使用beyondcode/laravel-websockets 构建一个聊天应用程序。当我在本地使用它时,它运行良好,但在服务器上无法使其运行。
我的配置如下
我的回声设置 (Js/Bootstrap.js)
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
encrypted: false,
wsHost: window.location.hostname,
wsPort: 6001,
});
我的推送器设置 (Broadcasting.php)
'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' => false,
'host' => env('WEBSOCKET_HOST'),
'port' => env('WEBSOCKET_PORT'),
'scheme' => env('WEBSSOCKET_SCHEME'),
],
],
我的 Webscoket 设置 (Websockets.php)
'dashboard' => [
'port' => env('LARAVEL_WEBSOCKETS_PORT', 6001),
],
'apps' => [
[
'id' => env('PUSHER_APP_ID'),
'name' => env('APP_NAME'),
'key' => env('PUSHER_APP_KEY'),
'secret' => env('PUSHER_APP_SECRET'),
'path' => env('PUSHER_APP_PATH'),
'capacity' => null,
'enable_client_messages' => true,
'enable_statistics' => true,
],
],
我的 .env 配置
PUSHER_APP_ID=MyDefaultIdForURMENU
PUSHER_APP_KEY=1234567
PUSHER_APP_SECRET=MyDefaultSecretForURMENU
PUSHER_APP_CLUSTER=mt1
WEBSOCKET_HOST = 127.0.0.1
WEBSOCKET_PORT = 6001
WEBSSOCKET_SCHEME= http
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
现在,当我直接在 ssh 中运行 websocket 或使用命令使用 setsid 时
php artisan websockets:serve
或
setsid php artisan websockets:serve
它显示
正在端口 6001 上启动 WebSocket 服务器...
但是控制台日志显示要么
与“wss://mydomain.com/app/1234567?protocol=7&client=js&version=5.0.3&flash=false”的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:404
或有时
到 'ws://mydomain.com:6001/app/1234567?protocol=7&client=js&version=5.0.3&flash=false' 的 WebSocket 连接失败:在建立连接之前 WebSocket 已关闭。
请指导我做错了什么
【问题讨论】:
标签: laravel websocket server laravel-websockets