2

问候社区

我有下一个问题。我有一个用 Laravel 制作的 api 和一个用 vuejs 制作的前端。问题是套接字只能在本地工作,但是当我在共享主机中上传两个项目时,套接字失败并在浏览器控制台中显示错误连接

这是config/broadcasting.php中的 mi 配置

'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'),
            'useTLS'                => true,
            'encrypted'             => false,
            'host'                  => 'backtotalv2.tastyboom.com',
            'port'                  => 6001,
            'scheme'                => 'https',
            'curl_options'          => [
                CURLOPT_SSL_VERIFYHOST => 0,
                CURLOPT_SSL_VERIFYPEER => 0,
            ]
        ],
    ],

这是我在config/websocket.php中的配置

'ssl' => [
    'local_cert' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_CERT', null),

    'local_pk' => env('LARAVEL_WEBSOCKETS_SSL_LOCAL_PK', null),

    'passphrase' => env('LARAVEL_WEBSOCKETS_SSL_PASSPHRASE', null),
],

这是我的 vuejs 中的 main.js:

import Echo from 'laravel-echo';

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: '***************',
    cluster: 'tls',
    forceTLS: false,
    wsHost: '127.0.0.1',
    wssPort: 6001,
    wsPort: 6001,
    authEndpoint: `${config.url}/broadcasting/auth`,
    enabledTransports: ['ws', 'wss'],
    encrypted: false,
    auth: {
      headers: { 
        "Authorization": "Bearer " + token
      }
    }
});

我试图遵循这个例子,但它没有用 Laravel + Nuxt + Nginx

在生产中始终在控制台中显示此错误

图像错误

如果有人可以帮助我,我将不胜感激。

4

1 回答 1

0

在我看来,您的服务器已配置为通过 TLS 安全运行,因为您将“useTLS”设置为 true,但在您的客户端中,您将“encrypted”和“forceTLS”设置为 false。另请记住,如果您的站点在 HTTPS 上运行,那么您也必须使用加密的 WSS,因为 WS 仅在您的站点通过 HTTP 未加密运行时才有效。

于 2021-03-05T14:32:52.413 回答