繁体   English   中英

Laravel websockets 连接失败

[英]Laravel websockets connection failed

我有一个 Laravel 8 API 项目以及一个使用 Laravel Echo 的 Nuxt JS 前端。 我安装了 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&client=js&version=7.0.3&flash=false' 失败:

例如,我的前端是: https://example-gui.example.com/而我正在运行的 API 位于https://example-api.example.com/上,并且与服务器相同,正在运行的 websockets 服务器。

我将 Cloudflare 用于 HTTPs,但我不确定是否需要对主机进行任何更改?

我最初有这样的连接:

'wss://127.0.0.1/app/local?protocol=7&client=js&version=7.0.3&flash=false',当我运行netstat -tulnp时,我确实看到端口6001在那里。

我在生产中缺少什么连接?

我被困在知道如何让它连接!

看起来您的前端仍在尝试连接到 websocket 服务器的 localhost 版本。

在此处输入图像描述

尝试用您的 example-api URL 替换它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM