为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel Pusher Websocket 无法在 HTTPS 上运行

Laravel Pusher Websocket 无法在 HTTPS 上运行

PHP
慕姐8265434 2023-07-01 15:10:04
我正在使用 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        ]    ],],结果相同!不工作!它在本地 Chrome 上完美运行,但在 Firefox 上运行良好我在控制台中看到这个
查看完整描述

3 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

您没有连接到正确的端口,或者 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,


查看完整回答
反对 回复 2023-07-01
?
12345678_0001

TA贡献1802条经验 获得超5个赞

在这里写:

尝试将'scheme' => 'http'中的HTTP 更改为 HTTP S

在 websockets.php 中检查此选项

'verify_peer' => 假,

查看完整回答
反对 回复 2023-07-01
?
倚天杖

TA贡献1828条经验 获得超3个赞

既然您提到,这是在本地发生的,您可能想检查一下这个问题,因为它可能与您遇到的问题有关......本质上有一个概述的解决方法,可以让 Firefox 在套接字上使用自签名证书。 ..


此外,如果您从构造函数中删除“wss”,会发生什么:


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, <-- Should these be commented out?

    // wssPort: 6001, <-- Should these be commented out?

    disableStats: true,

    forceTLS: true,

    enabledTransports: ['ws'] // removed wss

});

此外,您的端口被注释掉了......这看起来很奇怪,因为您需要有一个连接到套接字服务的端口。


查看完整回答
反对 回复 2023-07-01
  • 3 回答
  • 0 关注
  • 208 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信