异常:illumb\Broadcasting\broadcaster中没有消息。php:119

异常:illumb\Broadcasting\broadcaster中没有消息。php:119,php,laravel-5,pusher,Php,Laravel 5,Pusher,拉威尔5.8 我对整个推送功能都是新手,我一直在遵循本教程并进行尝试 我已经一步一步地遵循它,当我通过访问测试url手动测试事件时,我收到以下异常: 照明\广播\广播异常 没有消息 C:\wamp\www\ares\vendor\laravel\framework\src\illumb\broadcast\broadcaster\PusherBroadcaster.php 代码如下: $response = $this->pusher->trigger( $

拉威尔5.8

我对整个推送功能都是新手,我一直在遵循本教程并进行尝试

我已经一步一步地遵循它,当我通过访问测试url手动测试事件时,我收到以下异常:

照明\广播\广播异常 没有消息

C:\wamp\www\ares\vendor\laravel\framework\src\illumb\broadcast\broadcaster\PusherBroadcaster.php

代码如下:

    $response = $this->pusher->trigger(
        $this->formatChannels($channels), $event, $payload, $socket, true
    );

    if ((is_array($response) && $response['status'] >= 200 && $response['status'] <= 299)
        || $response === true) {
        return;
    }

    throw new BroadcastException( // <-- Exception at this line
        is_bool($response) ? 'Failed to connect to Pusher.' : $response['body']
    );
}

/**
 * Get the Pusher SDK instance.
 *
 * @return \Pusher\Pusher
 */
public function getPusher()
{
    return $this->pusher;
}
}
$response=$this->pusher->trigger(
$this->formatChannels($channels),$event,$payload,$socket,true
);

如果((is_array($response)&&$response['status']>=200&&$response['status']],就像我之前在评论中提到的那样,当整个帖子出错并且无法提供响应时,就会发生这种情况。这就是为什么第116行出现异常的原因。我以前将其更改为域

在我的例子中,我遵循代码,在“vendor/laravel/framework/src/illumb/Broadcasting/BroadcastManager.php”中找到了“createPusherDriver”方法

var_dump($config['key']);
var_dump($config['secret']);
var_dump( $config['app_id']);
var_dump($config['options']);
exit;
注意到我的选项仍然列出“主机”=>“本地主机”

我删除了这些行,并通过执行
php artisan config:cache


下次重新加载时,控制台中会触发一个已登录的事件。

我4天前开始使用Laravel,在实现实时聊天应用程序时遇到了同样的问题。在搜索了很多天后,我发现这可能会因您运行的Laravel版本而异。如果它是5.8,您可以通过以下方法解决此问题:在config/broadcasting.php文件的pusher.options数组中添加以下代码:

'curl_options' => [
                CURLOPT_SSL_VERIFYHOST => 0,
                CURLOPT_SSL_VERIFYPEER => 0,
            ],
添加此项后,config/broadcasting.php中的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,
            'curl_options' => [
                CURLOPT_SSL_VERIFYHOST => 0,
                CURLOPT_SSL_VERIFYPEER => 0,
            ],
        ],
    ],
然后,您可以运行
php artisan config:cache
(在某些情况下可能不需要),最后运行
php artisan serve
。您可以在pusher网站上查阅应用程序,查看发送消息后收到的事件。
希望能有帮助!!

在我的Laravel 5.8版本中运行得很好。但是对于这样的Laravel版本,
加密'=>true
加密'=>false
在这种情况下并不重要。但是,根据推送者的建议,我开始广播:
'useTLS'=>true,

这是我的最终结果:

'options' => [
            'cluster' => env('PUSHER_APP_CLUSTER'),
            'encrypted' => true,
            'useTLS' => true,
            'curl_options' => [
                CURLOPT_SSL_VERIFYHOST => 0,
                CURLOPT_SSL_VERIFYPEER => 0,
            ],
        ]

如果您正在使用localhost,请尝试设置.env文件

设置:

php artisan config:cache
感谢亲爱的@Bitart

'useTLS'=>true

选择解决了我的问题

'options' => [
     'cluster' => env('PUSHER_APP_CLUSTER'),
     'useTLS' => true,
]

这里也一样-有什么提示吗?当我var_dump($response)时,它显示数组(2){[“body”]=>bool(false)[“status”]=>int(0)}所以可能是整个系统出了问题post@Dharman谢谢你的建议!我试图让它工作,但结果是这是一个本地问题,我设法用你提供的链接解决了。由于我使用Forge来管理我的部署,SSL配置已经由Forge管理,因此SSL连接在没有我的服务器需要此参数。再次感谢。
'options' => [
     'cluster' => env('PUSHER_APP_CLUSTER'),
     'useTLS' => true,
]