我正在运行一个应用程序,在其中我使用laravel,并替换了推送器和一个自创建的websocket实例。对于SSL,我使用了letsencrypt证书和nginx反向代理"websockets和web内容的相同位置“方法。在我的nginx 1.2和1.3上启用了。现在,火狐和Chrome都运行良好,但是在Safari上( 14.1.2版本,在macOS Mojave 10.14.6上进行了测试),我在控制台中得到了以下错误:
WebSocket connection to 'wss://example.com/app/asdfasdf?protocol=7&client=js&version=7.0.3&flash=false' failed: Unexpected response code: 401
以下是我的回声选项:
const echoOptions = {
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
cluster: process.env.MIX_PUSHER_APP_CLUSTER,
wsHost: window.location.hostname,
wsPort: 80,
wssPort: 443,
forceTLS: true,
enabledTransports: ['ws', 'wss'], // <-- disable pusher api fallback
disableStats: true,
};
window.Echo = new Echo(echoOptions);
我找了很多类似的问题,但找不到答案。
任何想法或帮助都会很棒!
发布于 2022-01-11 15:19:36
我终于把它弄出来了
在此处提到的“入门”安装部分:https://beyondco.de/docs/laravel-websockets/getting-started/installation
他们说安装最新的稳定版本时:
composer require beyondcode/laravel-websockets
这将安装版本1.12.0。
为了解决这个问题,我刚刚删除了稳定版本并安装了最新的beta版本:
composer remove beyondcode/laravel-websockets
composer require beyondcode/laravel-websockets "2.0.0-beta.36"
我有一些无法解决的依赖,所以我需要将理论/dbal从3.1版降到2.9版。
然后,我备份了以前的config/websocket.php,并使用以下内容发布了新包中的一个:
cp config/websocket.php config/websocket.old.php
rm config/websocket.php
php artisan vendor:publish --provider="BeyondCode\LaravelWebSockets\WebSocketsServiceProvider" --tag="config"
在那里,我调整了一些值,例如allowed_origin和enable_client_messages。
最后,不要忘记杀死旧的websocket :服务进程(如果它正在运行),使用搜索进程id,ps,aux,grep,websocket,,然后用以下方式重新启动websocket:
kill <process id>
php artisan websockets:serve
PS:我还更新了pusher/pusher-php-server到5.0而不是3.0版本,就像他们提到的这里一样,并使用了lates 推js软件包7.0.3
https://stackoverflow.com/questions/70464828
复制相似问题