repository
0.0.0-20240717103638-b829fa3007a7
Repository: https://github.com/jashakimov/multiswitcher.git
Documentation: pkg.go.dev
# Packages
No description provided by the author
# README
Собрать приложение
GOOS=linux GOARCH=amd64 CGO_ENABLED=1 go build cmd/multiswitcher.go
Запуск
sudo multiswitcher -config cfg.json
Формат конфиг-файла
{
"interface": "lo",
"port": "9000",
"statsFrequencyMs": 1200,
"filters": [
{
"route": "233.0.0.1",
"switchTries": 3,
"autoSwitch": true,
"master": {
"ip": "127.0.0.5"
},
"slave": {
"ip": "127.0.0.3"
}
}
]
}
Конфигурация
- Интерфейс: lo
- Порт: 9000
- Частота сбора статистики (мс): 1200
Фильтры:
- Route: 233.0.0.1
-
Количество попыток переключения: 3
-
Автоматическое переключение: true
-
Мастер:
- IP: 127.0.0.5
-
Слейв:
- IP: 127.0.0.3
-
API
-
GET /stats:
- Действие: Возвращает конфигурацию (или статистику)
-
GET /stats/:id:
- Действие: Возвращает информацию о конкретной конфигурации на основе переданного идентификатора.
- Пример: GET /stats/1
-
PATCH /auto-switch/:id/:val:
- Действие: Вкл/Откл автопереключение конкретного фильтра
- Пример:
- GET /auto-switch/1/on включает автопереключение
- GET /auto-switch/1/off отключает автопереключение
-
PATCH /switch/:id/:name:
- Описание: Этот маршрут обрабатывает HTTP-запросы методом PATCH на "/switch/:id/:name", где ":id" - идентификатор фильтра, а ":name" - имя для переключения (например, "master" или "slave").
- Действие: Выполняет переключение между мастером и слейвом для указанного фильтра.
- Пример:
- GET /switch/1/slave переключает на слейв
- GET /switch/1/master переключает на мастер