sockudo 1.0.7

A simple, fast, and secure WebSocket server for real-time applications.
{
  "debug": false,
  "port": 6001,
  "host": "127.0.0.1",
  "cors": {
    "credentials": false,
    "origin": ["*"],
    "methods": ["GET", "POST", "OPTIONS"],
    "allowed_headers": [
      "Authorization",
      "Content-Type",
      "X-Requested-With",
      "Accept"
    ]
  },
  "app_manager": {
    "driver": "memory",
    "array": {
      "apps": [
        {
          "id": "app1",
          "key": "key1",
          "secret": "secret1",
          "enable_client_messages": true,
          "enabled": true,
          "max_connections": "100",
          "max_client_events_per_second": "10",
          "webhooks": [
            {
              "url": "http://localhost:3000/pusher/webhooks",
              "event_types": [
                "member_added",
                "member_removed",
                "subscription_count"
              ]
            }
          ]
        },
        {
          "id": "app2",
          "key": "key2",
          "secret": "secret2",
          "enable_client_messages": false,
          "enabled": true,
          "max_connections": "50",
          "max_client_events_per_second": "5"
        }
      ]
    },
    "cache": {
      "enabled": true,
      "ttl": 300
    }
  },
  "adapter": {
    "driver": "redis",
    "redis": {
      "prefix": "sockudo",
      "requests_timeout": 5000,
      "redis_pub_options": {
        "url": "redis://localhost:6379"
      },
      "redis_sub_options": {
        "url": "redis://localhost:6379"
      },
      "cluster_mode": false
    },
    "cluster": {
      "requests_timeout": 5000
    },
    "nats": {
      "requests_timeout": 5000,
      "prefix": "sockudo",
      "servers": ["nats://localhost:4222"],
      "connection_timeout_ms": 5000
    }
  },
  "cache": {
    "driver": "redis",
    "redis": {
      "url_override": "redis://localhost:6379",
      "cluster_mode": false
    }
  },
  "webhooks": {
    "batching": {
      "enabled": true,
      "duration": 50
    }
  },
  "queue": {
    "driver": "redis",
    "redis": {
      "concurrency": 5,
      "url_override": "redis://localhost:6379",
      "cluster_mode": false
    },
    "sqs": {
      "region": "us-east-1",
      "visibility_timeout": 30,
      "max_messages": 10,
      "wait_time_seconds": 5,
      "concurrency": 5,
      "fifo": false,
      "message_group_id": "default"
    }
  },
  "rate_limiter": {
    "driver": "redis",
    "enabled": false,
    "api_rate_limit": {
      "max_requests": 60,
      "window_seconds": 60,
      "identifier": "api"
    },
    "websocket_rate_limit": {
      "max_requests": 10,
      "window_seconds": 60,
      "identifier": "websocket"
    },
    "redis": {
      "cluster_mode": false
    }
  },
  "metrics": {
    "enabled": true,
    "driver": "prometheus",
    "host": "127.0.0.1",
    "port": 9601,
    "prometheus": {
      "prefix": "sockudo_"
    }
  },
  "mode": "production",
  "path_prefix": "/",
  "shutdown_grace_period": 10,
  "channel_limits": {
    "max_name_length": 200,
    "cache_ttl": 3600
  },
  "database": {
    "mysql": {
      "host": "localhost",
      "port": 3306,
      "username": "root",
      "password": "",
      "database": "sockudo",
      "table_name": "applications",
      "connection_pool_size": 10,
      "cache_ttl": 300,
      "cache_cleanup_interval": 60,
      "cache_max_capacity": 100
    },
    "redis": {
      "host": "127.0.0.1",
      "port": 6379,
      "db": 0,
      "username": null,
      "password": null,
      "key_prefix": "sockudo:",
      "cluster_nodes": []
    },
    "dynamodb": {
      "region": "us-east-1",
      "table_name": "sockudo-applications",
      "endpoint_url": null
    }
  }
}