如何配置 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

如何在生产中运行 Laravel Websockets(ubuntu + apache2)?

如何在MAVEN中配置Spring的依赖包

两个war包放在tomcat中,其中一个如何调用另外一个,怎么配置?