Laravel websockets 无法在推送器中连接

Posted

技术标签:

【中文标题】Laravel websockets 无法在推送器中连接【英文标题】:Laravel websockets failed to connect in pusher 【发布时间】:2020-05-05 16:32:37 【问题描述】:

当我运行我的项目时,我收到一个异常错误,但它没有明确的消息。我只有这种主体错误

我可以通过http://127.0.0.1:8000/laravel-websockets 访问 websocket 管理页面,但是当我转到http://127.0.0.1:8000/ 时,我收到以下错误。

The following error was encountered while trying to retrieve the URL: http://127.0.0.1:6001/apps/995591/events?

Connection to 127.0.0.1 failed.

The system returned: (111) Connection refused


The remote host or network may be down. Please try the request again.

Generated Tue, 05 May 2020 17:12:03 GMT by proxyserversetup-s-1vcpu-1gb-sgp1-07 (squid/3.5.27)

我从 this link 开始关注文档中的每一件事

这是我的一些配置

广播.php

 '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' => false,
                'useTLS' => true,
                'host' => '127.0.0.1',
                'port' => 6001,
                'scheme' => 'http',
                'curl_options' => [
                    CURLOPT_SSL_VERIFYHOST => 0,
                    CURLOPT_SSL_VERIFYPEER => 0,
                ],
            ],
        ],

.env

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=inventory
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=pusher

PUSHER_APP_ID=995591
PUSHER_APP_KEY=644a4ac1988060882370
PUSHER_APP_SECRET=739696537f4fb23b8fcd
PUSHER_APP_CLUSTER=ap1

我正在使用 laravel 6.x 和 laravel websockets 的当前版本。

是我的 ISP 导致了错误吗?

【问题讨论】:

您是否还配置了 WebSocket 应用程序? (接受这些密钥)docs.beyondco.de/laravel-websockets/1.0/basic-usage/… 我的websockets.php已经有这个了 【参考方案1】:

我也遇到过类似的事情。

如果您使用的是localhost,请更改

'useTLS' => true,

假的

'useTLS' => false,

它应该在你的 broadcasting.php 文件中

'connections' => [
    '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' => false,
        ],
    ],
    ....

【讨论】:

【参考方案2】:

确保您将方案设置为 https 并使用 'useTLS' => true 然后设置 curl_options 如下所示,如果您设置 SSL 证书和私钥的路径。

    'curl_options' => [
        CURLOPT_SSL_VERIFYHOST => 0,
        CURLOPT_SSL_VERIFYPEER => 0,
    ],

【讨论】:

以上是关于Laravel websockets 无法在推送器中连接的主要内容,如果未能解决你的问题,请参考以下文章

带有 Vue 和 Laravel API 的推送器无法正常工作

在不使用定价服务作为推送器的情况下创建 Laravel 广播的最简单方法是啥?

在 docker 环境中使用 laravel websockets 包

发出 POST 请求时出现推送错误的 Laravel WebSocket

实现websocket 主动消息推送,用laravel+Swoole

我有由 laravel 8 创建的项目,并且我将 JWT 用于我的 API,现在由于 JWT 版本我无法安装推送器