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