Laravel Pusher Websocket 无法在 HTTPS 上运行

我正在使用 Laravel 5.8,并且我们在应用程序中使用带有 PUSHER 的 Web 套接字。它在本地或当我处于 HTTP 模式时完美广播。当我将设置更新为 HTTPS 时,广播不再有效。


Any hints on this ? anyone ?

我试过了


#客户端


window.Echo = new Echo({

    broadcaster: 'pusher',

    key: process.env.MIX_PUSHER_APP_KEY,

    cluster: process.env.MIX_PUSHER_APP_CLUSTER,

    wsHost: window.location.hostname,

    encrypted: false,

    // wsPort: 6001,

    // wssPort: 6001,

    disableStats: true,

    forceTLS: true,

    enabledTransports: ['ws', 'wss']

});


#服务器端


'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'),

        'scheme' => 'http',

        'useTLS' => true,

        'debug' => true,

        'curl_options' => [

            CURLOPT_SSL_VERIFYHOST => 0,

            CURLOPT_SSL_VERIFYPEER => 0,

            CURLOPT_IPRESOLVE => CURL_IPRESOLVE_V4

        ]

    ],

],

结果相同!不工作!

http://img4.mukewang.com/649fd17b0001900206540247.jpg

它在本地 Chrome 上完美运行,但在 Firefox 上运行良好

我在控制台中看到这个

http://img4.mukewang.com/649fd18a000162e806530031.jpg

慕姐8265434
浏览 213回答 3
3回答

蝴蝶不菲

您没有连接到正确的端口,或者 Echo 的默认端口不是您应该用于推送器的默认端口。在 JavaScript 前端文件中定义正确的端口.env。(我不知道你的存储库设置,但有时你可以使用文件.env.local,例如在 Vue 设置中)。Pusher 似乎使用默认的 Web 端口 80 和 443,如下所述:在您的 中定义端口后.env,更改您的 JavaScript 代码:wsPort: process.env.MIX_PUSHER_WS_PORT,  wssPort: process.env.MIX_PUSHER_WSS_PORT,

12345678_0001

在这里写:尝试将'scheme' => 'http'中的HTTP 更改为 HTTP S在 websockets.php 中检查此选项'verify_peer' => 假,

倚天杖

既然您提到,这是在本地发生的,您可能想检查一下这个问题,因为它可能与您遇到的问题有关......本质上有一个概述的解决方法,可以让 Firefox 在套接字上使用自签名证书。 ..此外,如果您从构造函数中删除“wss”,会发生什么:window.Echo = new Echo({&nbsp; &nbsp; broadcaster: 'pusher',&nbsp; &nbsp; key: process.env.MIX_PUSHER_APP_KEY,&nbsp; &nbsp; cluster: process.env.MIX_PUSHER_APP_CLUSTER,&nbsp; &nbsp; wsHost: window.location.hostname,&nbsp; &nbsp; encrypted: false,&nbsp; &nbsp; // wsPort: 6001, <-- Should these be commented out?&nbsp; &nbsp; // wssPort: 6001, <-- Should these be commented out?&nbsp; &nbsp; disableStats: true,&nbsp; &nbsp; forceTLS: true,&nbsp; &nbsp; enabledTransports: ['ws'] // removed wss});此外,您的端口被注释掉了......这看起来很奇怪,因为您需要有一个连接到套接字服务的端口。
打开App,查看更多内容
随时随地看视频慕课网APP