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

Soketi服务连接报错(4001:App key不存在)求助及配置咨询

Soketi连接报错:App key不存在问题排查与解决

错误信息

code: 4001
message: "App key ---- does not exist."
event: "pusher:error"

现有配置信息

Soketi服务器配置

  • 子域名:socket.example.com
  • 安装命令:
    apt install -y git python3 gcc build-essential
    npm install -g @soketi/soketi
    
  • Soketi配置文件soketi.json:
    {
        "debug": true,
        "port": 443,
        "appManager.array.apps": [
            {
                "id": "---",
                "key": "---",
                "secret": "----"
            }
        ]
    }
    
  • Broadcast配置(服务器端):
    'host' => env('PUSHER_HOST', '127.0.0.1'),
    'port' => env('PUSHER_PORT', 6001),
    'scheme' => env('PUSHER_SCHEME', 'http'),
    'encrypted' => true,
    'useTLS' => env('PUSHER_SCHEME') === 'https'
    
  • 服务器环境变量:
    BROADCAST_DRIVER=pusher
    PUSHER_APP_ID=---
    PUSHER_APP_KEY=---
    PUSHER_APP_SECRET=---
    PUSHER_APP_CLUSTER=ap2
    PUSHER_SCHEME=https
    PUSHER_PORT=443
    PUSHER_HOST=127.0.0.1
    SOKETI_SSL_CERT=/etc/nginx/ssl/socket.example.com/----/server.crt
    SOKETI_SSL_KEY=/etc/nginx/ssl/socket.wourki.com/----/server.key
    
  • 启动命令:soketi start --config=soketi.json

主项目(example.com)连接配置

  • Broadcast配置:
    'host' => env('PUSHER_HOST', '127.0.0.1'),
    'port' => env('PUSHER_PORT', 6001),
    'scheme' => env('PUSHER_SCHEME', 'http'),
    'encrypted' => true,
    'useTLS' => env('PUSHER_SCHEME') === 'https'
    
  • 项目环境变量:
    BROADCAST_DRIVER=pusher
    PUSHER_APP_ID=---
    PUSHER_APP_KEY=---
    PUSHER_APP_SECRET=---
    PUSHER_APP_CLUSTER=ap2
    PUSHER_SCHEME=https
    PUSHER_PORT=443
    PUSHER_HOST='socket.example.com'
    
  • Laravel Echo配置:
    window.Echo = new Echo({
        broadcaster: 'pusher',
        key: '----',
        cluster: 'ap2',
        forceTLS: true,
        wsHost:'socket.example.com',
        wsPort:6001,
        wssPort:443,
        encrypted: true,
        disableStats: true,
        enabledTransports: ['ws', 'wss']
    });
    

排查与解决步骤

  1. 统一App Key配置

    • 确保以下三处的App Key完全一致(无空格、大小写严格匹配):
      • Soketi配置文件soketi.json中appManager.array.apps[0].key
      • 主项目环境变量PUSHER_APP_KEY
      • Laravel Echo配置中的key字段
  2. 修复SSL证书路径错误

    • 服务器环境变量中SOKETI_SSL_KEY的路径域名拼写错误(socket.wourki.com改为socket.example.com),修正后重启Soketi服务。
  3. 调整Soketi监听地址

    • 在soketi.json中添加"host": "0.0.0.0",确保服务监听所有网卡,允许外部访问:
      {
          "debug": true,
          "host": "0.0.0.0",
          "port": 443,
          "appManager.array.apps": [
              {
                  "id": "---",
                  "key": "---",
                  "secret": "----"
              }
          ]
      }
      
  4. 优化Echo连接配置

    • 由于启用了HTTPS(forceTLS: true),仅保留wss传输协议,避免端口混淆:
      window.Echo = new Echo({
          broadcaster: 'pusher',
          key: '---', // 替换为正确的App Key
          cluster: 'ap2',
          forceTLS: true,
          wsHost:'socket.example.com',
          wssPort:443,
          encrypted: true,
          disableStats: true,
          enabledTransports: ['wss']
      });
      
  5. 验证Soketi服务状态

    • 启动Soketi后,查看控制台日志,确认已加载配置的App信息;
    • 用curl测试服务可用性:
      curl https://socket.example.com/apps
      
    • 预期返回包含配置的App ID和Key的JSON数据,说明服务正常运行。

入门教程推荐

  • Laravel官方广播系统文档:重点学习Pusher驱动与WebSocket集成部分
  • Soketi官方文档:Laravel集成章节,涵盖从安装到配置的完整流程

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 12:34:52