我有一个Laravel8API项目和一个使用LaravelEcho的NUXTJS前端。我已经安装了Laravel Websockets服务器,并使用Pusher替换配置使一切正常工作:
'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' => true,
'host' => '127.0.0.1',
'port' => 6001,
'scheme' => 'http'
],
],
值得注意的是,我也尝试过:
'options' => [
...
'port' => 6001,
'scheme' => 'https'
],
和...
'options' => [
...
'port' => 443,
'scheme' => 'https'
],
但是,当我部署到CentOS 8服务器并使用php artisan websockets:serve
(我处于调试模式)启动websockets服务器并尝试连接时,我收到一个连接失败错误。我正在使用默认端口6001
和默认主机0.0。0.0时,我从前端收到的错误是:
WebSocket连接到wss://127.0.0.1/app/local?protocol=7
例如,我的前端是:https://example-gui.example.com/,而我正在运行的API在https://example-api.example.com/上,两者都在同一台服务器上,并且与正在运行的webSocket服务器位于同一台服务器上。
我使用Cloudflare为HTTPs,我不确定是否需要与主机更改任何东西?
我最初有这样的联系:
'wss://127.0.0.1/app/local?protocol=7
在生产中我缺少什么来连接?
我被困在知道如何让它连接!
看起来您的前端仍在尝试连接到websocket服务器的本地主机版本。
尝试用您的示例api URL替换它。