【发布时间】:2021-08-19 02:10:06
【问题描述】:
问题
对于一个 Lumen 8 项目,我们正在尝试实现 Pusher。我们让它在 Docker 环境中本地工作,但是当我们转向 Kubernetes 时,它不再工作了。我们收到此错误:
[2021-05-27 17:56:36] production.ERROR: Pusher error: 404 NOT FOUND {"exception":"[object] (Illuminate\\Broadcasting\\BroadcastException(code: 0): Pusher error: 404 NOT FOUND at /var/www/html/vendor/illuminate/broadcasting/Broadcasters/PusherBroadcaster.php:122)
这意味着它会抛出这段代码:
114: if ($this->pusherServerIsVersionFiveOrGreater()) {
115: $parameters = $socket !== null ? ['socket_id' => $socket] : [];
116:
117: try {
118: $this->pusher->trigger(
119: $this->formatChannels($channels), $event, $payload, $parameters
120: );
121: } catch (ApiErrorException $e) {
122: throw new BroadcastException(
123: sprintf('Pusher error: %s.', $e->getMessage())
124: );
125: }
126: }
它的工作方式是这样的。用户触发一个函数,该函数创建一个将在 Redis 中排队的 Job。然后当 Job 完成时,Event 就会被触发。
Jobs 工作,除了发送事件,这会导致上述错误。
我们的尝试
我们尝试将 Curl 选项添加到 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' => false,
'curl_options' => [
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => 0,
]
],
],
我们尝试将“加密”选项更改为真/假。这些都不起作用。
我们尝试使用php artisan cache:clear 清除缓存以及手动清除它rm -r storage/framework/cache。
我们尝试了composer dump-autoload和composer update。
我们对环境变量进行了三次检查,但仍然无法正常工作。
如果您需要更多信息,请告诉我!
【问题讨论】: