【发布时间】:2020-10-21 19:19:44
【问题描述】:
我正在开发一个 laravel 应用程序,其中将使用 laravel-WebSockets 包提取实时数据。我看到人们在生产方面遇到问题,但这是在开发方面。我正在使用主机入口访问网络应用程序
所有初始步骤完成(下载 laravel-WebSocket 包、pusher-js、php-pusher-server)
并执行php artisan websockets:serve。当我刷新浏览器时,控制台出现错误
app.js:40145 WebSocket connection to 'wss://erweb.in.linuxense.com:6001/app/erkey?protocol=7&client=js&version=6.0.3&flash=false' failed: WebSocket is closed before the connection is established. app.js:42637 WebSocket connection to 'wss://erweb.in.linuxense.com:6001/app/erkey?protocol=7&client=js&version=6.0.3&flash=false' failed: WebSocket opening handshake timed out
检查的内容
-
端口 6001 已打开并正在侦听。使用 netstat -tulpn 验证
-
回声配置 -
window.Echo = new Echo({ broadcaster: 'pusher', key: process.env.MIX_PUSHER_APP_KEY, forceTLS: true, wsHost: window.location.hostname, encrypted: false, wsPort: 6001, wssPort: 6001, disableStats: true, enabledTransports: ['ws', 'wss'] }); -
在广播.php `
'推动者' => [ '司机' => '推动者', 'key' => env('PUSHER_APP_KEY'), '秘密' => 环境('PUSHER_APP_SECRET'), 'app_id' => 环境('PUSHER_APP_ID'), '选项' => [ '集群' => 环境('PUSHER_APP_CLUSTER'), 'useTLS' => 真, '主机' => '127.0.0.1', '端口' => 6001, '方案' => 'http', '加密' => 假, ], ],
` 4. websocket配置文件的SSL部分没有改变
【问题讨论】:
-
你找到解决办法了吗?
-
是的,我让它工作了。首先也是最重要的事情是将您的推送器从 6.* 降级到 4.*。这有一些问题。这是资源/js/bootstrap.js window.Echo = new Echo({ broadcaster: 'pusher', key: process.env.MIX_PUSHER_APP_KEY, wsHost: window.location.hostname, wsPort: 6002, wssPort: 6002, disableStats: true, enabledTransports: ['ws', 'wss'], });每当您使用 bootstrap.js 文件进行更改时,请确保运行 npm run dev / npm run production 。还在 config/websockets.php 中的 ssl 数组中添加 verify_peer=>false
-
@BilalArshad 查看评论,告诉我是否有帮助