如何配置 laravel-websockets 包以使用从子目录提供的 Laravel 应用程序,即 https://laravel-apps.test/app1?
Posted
技术标签:
【中文标题】如何配置 laravel-websockets 包以使用从子目录提供的 Laravel 应用程序,即 https://laravel-apps.test/app1?【英文标题】:How to configure laravel-websockets package to work with Laravel app served from subdirectory, i.e. https://laravel-apps.test/app1? 【发布时间】:2021-08-12 12:37:18 【问题描述】:我有服务器,我从 https://laravel-apps.test/app1 之类的子目录提供 Laravel 应用程序。它会抛出此错误WebSocket connection to 'wss://laravel-apps.test:6001/app/Kfjaina1m7?protocol=7&client=js&version=7.0.3&flash=false' failed:
。
如果我像https://laravel-app1.test 一样直接提供应用程序,它就可以工作。我确定我错过了一些东西,但我不知道是什么?可能上面的 URL 在进行连接时也应该包含子目录字符串,但我不知道如何更改。
任何帮助将不胜感激,谢谢! :)
app.js
window.Echo = new Echo(
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
wsHost: window.location.hostname,
wsPort: 6001,
wssPort: 6001,
forceTLS: true,
disableStats: true,
);
config/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'),
'host' => '127.0.0.1',
'encrypted' => false,
'port' => 6001,
'scheme' => env('HTTP_SCHEME', 'http')
]
],
【问题讨论】:
【参考方案1】:在安全上下文中,您必须在 broadcast.php 中使用 https 模式,并在 websockets.php 配置文件中添加证书。
【讨论】:
以上是关于如何配置 laravel-websockets 包以使用从子目录提供的 Laravel 应用程序,即 https://laravel-apps.test/app1?的主要内容,如果未能解决你的问题,请参考以下文章
无法访问 xampp-vm 上的 laravel-websockets 仪表板
是否可以检查(服务器端)是否占用了 laravel-websockets 通道?
Beyondcode\laravel-websockets 它正在重定向到 wss 而不是 localhost 上的 ws