You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用beyondcode/laravel-websockets触发事件时遇cURL error 28超时问题

解决beyondcode/laravel-websockets触发事件时的cURL超时问题

你的配置里存在几个关键问题,这大概率是导致超时错误的根源,以下是具体排查和修复步骤:

1. 修正配置文件笔误

在config/broadcasting.php的pusher配置中,options数组里的'post'是拼写错误,必须改为'port'——错误的键名会导致端口配置不生效,请求无法正确发送到websocket服务:

'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,
        'encrypter' => false,
        'host' => env('PUSHER_HOST'),
        'port' => env('PUSHER_PORT'), // 此处将post改为port
        'scheme' => env('PUSHER_SCHEME'),
    ],
    'client_options' => [
        // Guzzle client options
    ],
],

2. 移除.env配置值的多余引号

你的.env文件中,PUSHER_HOST、PUSHER_PORT、PUSHER_SCHEME带了双引号,Laravel读取这些值时会把引号也包含进去,导致请求地址格式错误,修改为:

BROADCAST_DRIVER=pusher
PUSHER_APP_ID=livequeueing
PUSHER_APP_KEY=livequeueing_key
PUSHER_APP_SECRET=livequeueing_secret
PUSHER_APP_CLUSTER=mt1
PUSHER_HOST=127.0.0.1
PUSHER_PORT=6001
PUSHER_SCHEME=http

3. 验证WebSocket服务监听状态

执行命令检查6001端口是否被websocket服务占用:

netstat -tulpn | grep 6001
# 或者使用lsof命令
lsof -i :6001

如果没有返回结果,说明websocket服务未正常启动,重新运行php artisan websockets:serve确保服务在运行。

4. 调整Guzzle客户端超时设置

在config/broadcasting.php的client_options中添加超时参数,避免请求因等待时间过长触发超时:

'client_options' => [
    'timeout' => 10,
    'connect_timeout' => 5,
],

5. 确认广播服务提供者已注册

检查config/app.php的providers数组中是否包含广播服务提供者:

Illuminate\Broadcasting\BroadcastServiceProvider::class,

完成以上修改后,清除配置缓存并重启websocket服务:

php artisan config:clear
php artisan websockets:serve

之后再触发事件测试即可。

内容的提问来源于stack exchange,提问作者Demonyowh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 09:20:08