Сообщения об ошибках
Все сообщения, которые Signal Lab показывает при сбое, по их кодам: код выдают отчёт о прогоне, командная строка и API. Значения в фигурных скобках заменяются тем, что не удалось.
api
| Код | Сообщение |
|---|---|
api.not_found | У сервера нет такого адреса — интерфейс и сервер разных версий |
api.run_invalid | Запрос на запуск не читается |
api.run_source | Укажите эксперимент один раз: документом или шаблоном |
api.template_unknown | Встроенного шаблона {name} нет |
auth
| Код | Сообщение |
|---|---|
auth.host | Сервер не отвечает на этот адрес — откройте его по его собственному имени |
auth.origin | Запрос пришёл с другого сайта и отклонён |
auth.required | Сначала войдите на этот сервер |
broadcast
| Код | Сообщение |
|---|---|
broadcast.cidr_invalid | {value} — не CIDR-блок: укажите a.b.c.d/nn, например 192.168.1.0/24 |
broadcast.interface_invalid | {value} — не IPv4-адрес: укажите адрес интерфейса или оставьте поле пустым |
broadcast.ipv6 | В IPv6 нет широковещания — используйте multicast |
broadcast.join_failed | Не удалось войти в multicast-группу {group} |
broadcast.not_broadcast | {target} — не широковещательный адрес: укажите 255.255.255.255:порт или x.x.x.255:порт |
broadcast.not_multicast | {target} — не multicast-группа: нужен адрес от 224.0.0.0 до 239.255.255.255 |
broadcast.port_shared | {target} уже занят — включите «делить порт», чтобы слушать вместе с ним |
broadcast.prefix_invalid | /{value} — не длина префикса: допустимо от /0 до /32 |
broadcast.rate_invalid | Темп маяка должен быть больше 0 |
broadcast.rate_limit | {pps} пакетов/с на {targets} цели — больше предела {max} п/с: снизьте темп или сузьте цель |
broadcast.reply_missing | Не задан ответ — задайте его или выключите «отвечать на запросы» |
broadcast.sweep_port | Укажите порт для обхода |
broadcast.sweep_too_large | /{prefix} — это {count} адресов, а обход охватывает не больше {max} хостов: сузьте до /{limit} или меньшего блока |
broadcast.target_required | Укажите хотя бы одну цель |
check
| Код | Сообщение |
|---|---|
check.body_missing | В ответе нет {text} |
check.body_truncated | Ответ ({bytes} Б) длиннее сохраняемых 256 КиБ — текст проверить не удалось |
check.header_mismatch | Заголовок {name} равен {actual} и не содержит {text} |
check.header_missing | В ответе нет заголовка {name} |
check.latency_failed | Ответ занял {actual} мс — больше лимита {limit} мс |
check.no_response | Перед этим шагом нет HTTP-ответа — поставьте HTTP-запрос перед ним на каждом пути |
check.status_failed | Ожидался HTTP {expected}, получен {actual} |
check.value_failed | Ожидалось: {value} {op} {expected} |
cli
| Код | Сообщение |
|---|---|
cli.bind_one | --bind задаёт адрес одного эмулятора, а их передано несколько |
cli.emulate_nothing | Нечего эмулировать: в файлах нет эмуляторов |
cli.emulator_unknown | {name} — не файл, и в {path} нет эмулятора с таким id или названием |
cli.file_unknown | {name} — не файл и не встроенный шаблон; список шаблонов: signallab templates |
cli.header_invalid | {value} — не заголовок; используйте «Имя: значение» |
cli.library_missing | Библиотеки {path} нет — приложение создаёт её при первом запуске; либо укажите другую через --library |
cli.matrix_conflict | {name} задан дважды — через --param и в матрице или через --matrix и в файле; задайте один раз |
cli.matrix_file_invalid | {path} — не матрица: нужен объект ИМЯ: [значения] или список объектов ИМЯ: значение |
cli.matrix_invalid | {value} — не ИМЯ=З1,З2 |
cli.matrix_too_large | {n} комбинации — не больше {max} за одну команду |
cli.matrix_too_wide | {axes} оси дают больше комбинаций, чем можно сосчитать, — не больше {max} за одну команду |
cli.matrix_unknown | --matrix {name}: ни у одного из указанных экспериментов нет такого параметра |
cli.matrix_value_invalid | {name}: значение матрицы — текст, число или true/false |
cli.osc_arg_invalid | {value} — не аргумент OSC; используйте i:3, f:0.5, d:1.5, h:64, s:текст, b:hex, T, F или N |
cli.param_invalid | {value} — не ИМЯ=ЗНАЧЕНИЕ |
cli.server_ended | Ответ {url} оборвался раньше, чем закончился запуск |
cli.server_invalid | {url} — не адрес сервера; укажите адрес вида http://127.0.0.1:1430 |
cli.server_reply | {url} ответил не так, как отвечает Signal Lab (HTTP {status}) |
cli.server_unreachable | Сервер {url} недоступен |
cli.signal_ambiguous | Сигналов с именем {name} несколько — укажите id: {ids} |
cli.signal_unknown | Сигнала {name} нет в {path} |
cli.status_unexpected | Ответ {actual}, а ожидался {expected} |
cli.token_empty | Файл токена {path} пуст |
command
| Код | Сообщение |
|---|---|
command.args_invalid | Движок не смог прочитать аргументы {name} — интерфейс и движок разных версий |
command.json_required | Сервер принимает команды только в JSON |
command.reply_invalid | Движок не смог закодировать ответ |
command.unknown | У движка нет команды {name} — интерфейс новее движка |
compare
| Код | Сообщение |
|---|---|
compare.not_numbers | Для этого сравнения {value} и {expected} должны быть числами |
details
| Код | Сообщение |
|---|---|
details | Технические подробности |
doc
| Код | Сообщение |
|---|---|
doc.connection_duplicate | Связь {from} → {to} указана дважды |
doc.connection_invalid | Связь {from} → {to} ведёт к отсутствующему узлу или к самому себе |
doc.name_required | Дайте эксперименту название |
doc.node_count | В эксперименте может быть от 1 до {max} узлов |
doc.node_id_duplicate | Два узла с одинаковым id {id} |
doc.node_id_empty | У узла пустой id |
doc.port_invalid | Неизвестный выход {port} |
doc.position_invalid | У узла неверная позиция |
doc.start_end_count | Нужны ровно один Старт и один Финиш |
doc.version_unsupported | Версия файла {version} не поддерживается; эта версия Signal Lab читает версию {supported} |
emulator
| Код | Сообщение |
|---|---|
emulator.accept_failed | Приём соединений на {target} остановился с ошибкой |
emulator.arg_value | {value} — не значение типа {type} |
emulator.args_too_many | Не больше {max} аргументов |
emulator.bind_taken | {target} уже занят другим эмулятором этого эксперимента ({other}) |
emulator.body_failed | Не удалось прочитать тело запроса |
emulator.body_too_large | Тело запроса больше {max} КБ |
emulator.busy | Ожидают отправки больше {max} ответов — этот отброшен |
emulator.conditions_too_many | Не больше {max} условий |
emulator.failed | Эмулятор неожиданно остановился |
emulator.header_value_invalid | Недопустимое значение заголовка — в нём не должно быть переводов строки |
emulator.headers_too_many | Не больше {max} заголовков |
emulator.mqtt_client_id | Отказано клиенту без идентификатора, который просил сохранить сессию |
emulator.mqtt_login | Отказано {client}: неверное имя пользователя или пароль |
emulator.mqtt_password_alone | MQTT 3.1.1 не может передать пароль без имени пользователя, и ни один клиент не подключится: задайте и имя |
emulator.mqtt_protocol | Отказано клиенту с протоколом {protocol} уровня {level}: этот брокер говорит на MQTT 3.1.1 (уровень 4) |
emulator.name_unknown | Неизвестное имя {{{name}}} — ответ читает {{request…}} и параметры |
emulator.node_unknown | В этом эксперименте нет эмулятора {id} |
emulator.not_in_run | Эмулятор {id} не входит в этот запуск |
emulator.not_running | Эмулятор #{id} не запущен |
emulator.params_only | Здесь только текст и параметры: это поле фиксируется при запуске эмулятора, до того как что-то придёт |
emulator.path_param | {value} — не имя сегмента: используйте :имя из латинских букв, цифр и _ |
emulator.path_rest | * может быть только целым последним сегментом, как в /files/* |
emulator.path_slash | Путь начинается с / |
emulator.response_required | Маршруту нужен хотя бы один ответ |
emulator.responses_too_many | Не больше {max} ответов |
emulator.rules_too_many | Не больше {max} правил |
emulator.secret_unsupported | Эмулятор не может читать секреты |
emulator.weights_zero | Хотя бы у одного ответа вес должен быть больше 0 |
emulators
| Код | Сообщение |
|---|---|
emulators.encode | Не удалось записать библиотеку эмуляторов в JSON |
emulators.json_invalid | {path} — неверный файл эмуляторов: ошибка JSON в строке {line}, столбце {column} — исправьте или удалите файл |
extract
| Код | Сообщение |
|---|---|
extract.header_missing | В ответе нет заголовка {name} |
extract.json_missing | В ответе нет {path} |
extract.no_match | /{pattern}/ не нашёлся в теле ответа |
extract.not_json | Тело ответа — не JSON |
extract.truncated | Ответ ({bytes} Б) длиннее сохраняемых 256 КиБ — значение нельзя прочитать надёжно |
feedback
| Код | Сообщение |
|---|---|
feedback.disabled | Обратная связь сейчас не принимается — напишите на info@proanima.net |
feedback.email_invalid | Это не адрес электронной почты |
feedback.failed | Сервис обратной связи ответил HTTP {status} |
feedback.file_too_large | {name} больше {max_mb} МБ |
feedback.file_type | {name}: скриншот должен быть PNG, JPEG, WebP или GIF, а журнал — текстом |
feedback.invalid | Сервис обратной связи не принял форму |
feedback.message_required | Сначала напишите сообщение |
feedback.message_too_long | Сообщение длиннее {max} символов |
feedback.rate_limited | Слишком много сообщений с этого адреса — попробуйте снова через {retry_after_s} с |
feedback.send_failed | Сервис обратной связи не смог передать сообщение почтовому серверу; попробуйте позже (номер обращения {id}) |
feedback.too_large | Всё вместе больше {max_mb} МБ |
feedback.too_many_files | Не больше {max} журналов |
file
| Код | Сообщение |
|---|---|
file.encode | Не удалось записать эксперимент в JSON |
file.io | Не удаётся прочитать или записать {path} |
file.json_invalid | Неверный файл эксперимента: ошибка JSON в строке {line}, столбце {column} |
file.not_found | {path} — не файл в папке данных сервера |
file.too_large | Файл эксперимента — не больше {max} МиБ |
firewall
| Код | Сообщение |
|---|---|
firewall.declined | Права администратора не были даны, поэтому брандмауэр не изменён |
firewall.failed | Не удалось прочитать или изменить правила брандмауэра |
firewall.server | Брандмауэр сервера настраивается на сервере: выполните там signallab firewall allow или обратитесь к его администратору |
firewall.unsupported | Здесь нет брандмауэра с правилами для программ — откройте порты в ufw или firewalld |
graph
| Код | Сообщение |
|---|---|
graph.cycle | Узел входит в цикл: назад может вести только тело узла «Цикл» |
graph.needs_http | Перед этим шагом на каждом пути нужен HTTP-запрос |
graph.outputs_required | Подключите обязательные выходы |
graph.port_unexpected | Выход {port} не относится к этому узлу |
graph.start_input | У Старта не может быть входа |
graph.unreachable | Недостижим от Старта |
hex
| Код | Сообщение |
|---|---|
hex.empty | Нет байтов для отправки — введите пары hex-цифр, например de ad be ef |
hex.invalid | {value} — не hex-байты: нужны пары цифр, например de ad be ef |
http
| Код | Сообщение |
|---|---|
http.client_failed | Не удалось запустить HTTP-клиент |
http.digest_invalid | Сервер запросил Digest без realm или nonce |
http.digest_not_offered | Сервер ответил 401, но Digest не запросил |
http.digest_other_origin | Запрос перенаправлен на {origin}, и там запросили Digest — ответ даётся только источнику, указанному в запросе |
http.digest_unsupported | Сервер запросил Digest с {algorithm}, а Signal Lab такого не поддерживает (поддерживаются MD5 и SHA-256) |
http.duration_invalid | Длительность — 0 или больше секунд |
http.rate_invalid | Темп — 0 или от {min} до {max} запросов в секунду |
impair
| Код | Сообщение |
|---|---|
impair.bind_taken | {target} уже занят узлом {other}: два сокета запуска не могут делить один порт |
impair.loop | Пакеты реле вернулись бы к нему же через {target} и ходили бы по кругу — направьте его на устройство |
impair.not_running | Сетевые помехи {id} не входят в этот запуск |
impair.relay_unknown | В этом эксперименте нет сетевых помех {id} |
inspect
| Код | Сообщение |
|---|---|
inspect.empty | Захват пуст — сохранять нечего |
inspect.frame_gone | Кадра #{seq} уже нет в захвате: его место заняли более новые |
inspect.no_payload | Кадр #{seq} записал только размер, без самих байтов |
json_path
| Код | Сообщение |
|---|---|
json_path.invalid | {path} — не JSON-путь: используйте $.field, $.items[0] или $["a b"] |
load
| Код | Сообщение |
|---|---|
load.nothing_planned | Этот профиль не отправляет ни одного запроса |
load.spike_outside | Всплеск должен закончиться до конца профиля |
load.steps_out_of_range | Темп каждой ступени — от 0 до {max} запросов в секунду |
load.threshold | {metric} — {actual}, порог {op} {value} |
load.threshold_value | Порогу нужно число, 0 или больше |
load.thresholds_too_many | Не больше {max} порогов |
load.too_long | Ступени длятся дольше, чем может идти прогон ({seconds} с) |
loop
| Код | Сообщение |
|---|---|
loop.body_entered | В тело цикла может вести только его выход «Тело» |
loop.body_leaves | В теле цикла каждый выход ведёт дальше по телу или назад в цикл |
loop.body_parallel | В теле цикла у выхода один провод: итерация идёт одним потоком |
loop.body_unsupported | В теле цикла не может быть Старта, Финиша, параллельных потоков, объединений и других циклов |
loop.limit | Итераций: {max}; условие выхода так и не выполнилось (соедините «Лимит», чтобы продолжить) |
loop.no_return | Ничто из тела не возвращается в этот цикл |
mqtt
| Код | Сообщение |
|---|---|
mqtt.client_id_required | Укажите ID клиента — брокеры не принимают пустой |
mqtt.filter_required | Добавьте хотя бы один фильтр топиков |
mqtt.no_answer | {broker} принял соединение, но не ответил вовремя — это MQTT-брокер? |
mqtt.not_connected | Подключение #{id} не открыто — сначала подключитесь к брокеру |
mqtt.protocol | {broker} ответил не по MQTT 3.1.1 |
mqtt.refused | {broker} отклонил подключение (код {code}) |
mqtt.refused_client_id | {broker} отклонил ID клиента — выберите другой |
mqtt.refused_credentials | {broker} не принял имя пользователя или пароль |
mqtt.refused_not_authorized | {broker} не дал этому клиенту доступа — проверьте его права на брокере |
mqtt.refused_protocol | {broker} не принимает клиентов MQTT 3.1.1 |
mqtt.refused_unavailable | {broker} сейчас недоступен — попробуйте позже |
mqtt.subscribe_refused | {broker} отказал в подписке на {filter} |
mqtt.topic_invalid | В этот топик нельзя публиковать |
mqtt.topic_required | Укажите топик для публикации |
name
| Код | Сообщение |
|---|---|
name.no_value | У {name} нет значения |
name.not_on_every_path | {{{name}}} задаётся не на каждом пути до этого шага |
name.unknown | Неизвестное имя {{{name}}} — добавьте параметр или извлеките переменную |
netsim
| Код | Сообщение |
|---|---|
netsim.not_running | Реле {id} уже не работает |
node
| Код | Сообщение |
|---|---|
node.bind_invalid | {value} — не адрес для прослушивания: укажите IP:порт, например 0.0.0.0:9001 |
node.header_invalid | {value} — недопустимое имя заголовка |
node.load_alone | Нагрузка заменяет повтор и повторные попытки — выключите их |
node.load_unsupported | Под нагрузкой работает только HTTP-запрос |
node.method_invalid | {value} — не HTTP-метод |
node.not_found | Узла {id} больше нет |
node.osc_address | OSC-адрес начинается с / ({value}) |
node.params_only | Здесь можно использовать только параметры — подписка открывается до первого шага |
node.range | Допустимо {min}–{max} |
node.repeat_too_long | Серия длится дольше, чем может длиться запуск ({seconds} с) |
node.repeat_too_many | Больше {max} отправок: увеличьте интервал или сократите время |
node.repeat_unsupported | Серией отправлять могут только шаги, которые отправляют |
node.required | Обязательное поле |
node.retry_unsupported | Повторять можно только шаги, которые отправляют или слушают |
node.rules_too_many | Не больше {max} условий на аргументы |
node.target_invalid | {value} — не адрес с портом, например 127.0.0.1:9000 |
node.too_long | Слишком длинно: не больше {max} |
node.topic_filter | {value} — не фильтр топика: + заменяет целый уровень, # — только последний целиком |
node.topic_wildcard | Топик публикации не может содержать подстановки + и # |
node.url_invalid | {value} — не URL вида http:// или https:// |
osc
| Код | Сообщение |
|---|---|
osc.packet_malformed | Повреждённый OSC-пакет ({bytes} Б) |
osc.pattern_char | Символ «{char}» здесь недопустим в OSC-адресе |
osc.pattern_empty_segment | Пустая часть между слешами |
osc.pattern_empty_set | Пустой набор [ ] |
osc.pattern_range | Диапазон {range} задан в обратном порядке |
osc.pattern_slash | Шаблон OSC-адреса начинается с / |
osc.pattern_too_long | Шаблон адреса длиннее {max} символов |
osc.pattern_unclosed | Незакрытая [ или { |
param
| Код | Сообщение |
|---|---|
param.duplicate | Параметр {name} задан дважды |
param.name_invalid | Имя параметра «{name}» должно начинаться с буквы или _ и состоять из букв, цифр и _ |
param.name_reserved | «{name}» зарезервировано и не может быть именем параметра |
param.too_large | Параметр {name} больше {max} КиБ |
param.unknown | Неизвестный параметр {name} |
params
| Код | Сообщение |
|---|---|
params.too_many | Не больше {max} параметров |
position
| Код | Сообщение |
|---|---|
position | позиция {position} |
profile
| Код | Сообщение |
|---|---|
profile.active_missing | Активного профиля {name} нет |
profile.duplicate | Профиль {name} задан дважды |
profile.name_invalid | Имя профиля — от 1 до {max} символов |
profile.unknown_param | Профиль {profile} задаёт {name}, а такого параметра нет |
profile.values_too_many | Профиль {profile} задаёт больше {max} значений |
profiles
| Код | Сообщение |
|---|---|
profiles.too_many | Не больше {max} профилей |
regex
| Код | Сообщение |
|---|---|
regex.invalid | {pattern} — неверное регулярное выражение |
run
| Код | Сообщение |
|---|---|
run.join_waiting | Слияние всё ещё ждёт веток: {count} — по какой-то входящей связи выполнение так и не пришло, например ветка пошла другим путём |
run.limit_range | Запуск может длиться от 1 до {max} с |
run.no_end | Запуск остановился, не дойдя до Финиша |
run.node_missing | Узел {id} не найден |
run.not_a_check | Этот узел — не проверка |
run.not_a_wait | Этот узел — не ожидание |
run.not_an_action | Этот узел ничего не отправляет и не слушает |
run.override_unknown | «Запуск с…» задаёт {name}, а такого параметра нет |
run.timeout | Запуск длился дольше {seconds} с и был остановлен |
runs
| Код | Сообщение |
|---|---|
runs.name_invalid | «{name}» — не отчёт о прогоне |
runs.not_found | Прогона «{name}» нет: его отчёт удалён |
scan
| Код | Сообщение |
|---|---|
scan.host_required | Укажите хост для сканирования |
secret
| Код | Сообщение |
|---|---|
secret.empty | Секрет не может быть пустым |
secret.missing | Секрет {name} не сохранён на этом компьютере — задайте его в «Параметры → Секреты» |
secret.name_invalid | Имя секрета «{name}» должно начинаться с буквы или _, состоять из букв, цифр и _ и быть не длиннее {max} символов |
secret.read_only | Здесь секреты только для чтения: задайте {name} на сервере (SIGNALLAB_SECRET_{name} или файл {name} в папке секретов) |
secret.store | Системное хранилище учётных данных не справилось с {name} |
secret.too_large | Секрет — не больше {max} КиБ |
secret.unsupported | Секреты хранятся в Диспетчере учётных данных Windows, которого в этой системе нет |
seed
| Код | Сообщение |
|---|---|
seed.range | Seed должен быть от 0 до {max} |
show
| Код | Сообщение |
|---|---|
show | Показать |
signals
| Код | Сообщение |
|---|---|
signals.encode | Не удалось записать библиотеку сигналов в JSON |
signals.json_invalid | {path} — неверная библиотека сигналов: ошибка JSON в строке {line}, столбце {column} — исправьте или удалите файл |
socket
| Код | Сообщение |
|---|---|
socket.option_failed | Система не приняла параметр сокета {option} |
template
| Код | Сообщение |
|---|---|
template.arg_empty | Пустой аргумент |
template.arg_integer | {function}: {value} — не целое число |
template.arg_invalid | Аргумент {value} нужно взять в кавычки |
template.arg_number | {function}: {value} — не число |
template.arg_quote | Незакрытая кавычка в аргументах |
template.args_pick | pick(…) нужен хотя бы один вариант |
template.args_random_float | random_float(min, max[, digits]) принимает 2 или 3 аргумента |
template.args_random_int | random_int(min, max) принимает 2 аргумента |
template.args_uuid | uuid() не принимает аргументов |
template.bad_call | {text} — неверный вызов функции |
template.bad_name | {text} — неверное имя |
template.bad_path | {text}: неверный путь — используйте .field, [0] или ["key"] |
template.digits | random_float принимает от 0 до {max} знаков |
template.empty | Пустые {{ }} |
template.needs_name | Для {head} нужно имя: {head}.ИМЯ |
template.no_field | У {name} нет поля {path} |
template.node_fields | У node есть только node.id |
template.now_fields | У now есть только now.iso |
template.range | {function}: min {min} должен быть меньше max {max} |
template.run_fields | У run есть только run.id и run.seed |
template.unclosed | Незакрытые {{ |
template.unknown_function | Неизвестная функция {name}() |
transport
| Код | Сообщение |
|---|---|
transport.address_in_use | {target} уже занят другой программой |
transport.address_unavailable | {target} — не адрес этого компьютера |
transport.denied | Система или брандмауэр не разрешили доступ к {target} |
transport.dns | Не удаётся найти {target} — проверьте имя хоста |
transport.failed | Не удалось отправить на {target} |
transport.refused | {target} отклонил подключение — на этом порту никто не слушает |
transport.reset | {target} закрыл соединение |
transport.target_invalid | {target} — неверный адрес |
transport.timeout | {target} не ответил вовремя |
transport.tls | Не удалось установить защищённое соединение с {target} (сертификат или TLS) |
transport.unreachable | {target} недоступен — проверьте сеть и адрес |
unknown
| Код | Сообщение |
|---|---|
unknown | Непредвиденная ошибка движка ({code}) |
variable
| Код | Сообщение |
|---|---|
variable.name_invalid | Имя переменной «{name}» должно начинаться с буквы или _ и состоять из букв, цифр и _ |
variable.name_reserved | «{name}» зарезервировано и не может быть именем переменной |
variable.shadows_param | Переменная {name} называется так же, как параметр |
wait
| Код | Сообщение |
|---|---|
wait.bind_failed | Не удаётся слушать {target} |
wait.not_listening | Прослушивание {target} не запущено |
wait.receive_failed | Прослушивание {target} прервалось с ошибкой |
wait.timeout | За {ms} мс подходящее сообщение не пришло (на {target} пришло {unmatched} другого сообщения) |
ws
| Код | Сообщение |
|---|---|
ws.close_code | {code} — не код закрытия, который отправляет клиент: используйте 1000 или 3000–4999 для кодов приложения |
ws.closed | Соединение WebSocket закрыто ({code}) |
ws.connection_after | {id} не идёт раньше этого шага — а именно он открывает соединение, которое шаг использует |
ws.connection_unknown | {id} — не узел «Подключение WebSocket» этого эксперимента |
ws.handshake_failed | Не удалось перейти на WebSocket с {url} |
ws.handshake_status | {url} ответил HTTP {status} вместо перехода на WebSocket |
ws.header_invalid | Заголовок {name} нельзя отправить в запросе на переключение |
ws.message_too_large | Сообщение WebSocket не больше {max} байт |
ws.not_connected | Нет открытого соединения WebSocket {id} |
ws.payload_required | Задайте сообщение текстом или байтами в hex |
ws.protocol_error | Соединение с {url} разорвано: сервер нарушил протокол WebSocket |
ws.protocol_invalid | {value} — не имя подпротокола: без пробелов, запятых и косых черт |
ws.subprotocol_refused | {url} не принял ни один из предложенных подпротоколов |
ws.url_invalid | {url} — не адрес WebSocket: нужен ws://хост:порт/путь или wss://… |
Поля
Как сообщение называет поле, о котором говорит.
| Поле | Название |
|---|---|
address | Адрес |
argument | Аргумент |
attempts | Попыток |
auth | Аутентификация |
bind | Слушать |
body | Тело |
broker | Брокер |
burst_length | Длина пачки |
burst_start | Пачки потерь |
code | Код закрытия |
condition | Условие |
conditions | Условия |
connection | Соединение |
corrupt | Искажение |
delay_ms | Задержка |
duplicate | Дублирование |
duration_s | Длительность |
emulator | Эмулятор |
expected | Ожидается |
expected_text | Ожидаемый текст |
fallback | Запросы без маршрута |
greeting | Приветствие |
header_name | Имя заголовка |
header_value | Значение заголовка |
headers | Заголовки |
hex | Байты (hex) |
host | Хост |
jitter_ms | Разброс |
json_path | JSON-путь |
latency_ms | Задержка |
listen | Слушать |
load | Нагрузка |
load_base | Базовый темп |
load_concurrency | Параллельность |
load_duration | Длительность |
load_every | Длина ступени |
load_from | От |
load_peak | Пиковый темп |
load_rate | Темп |
load_spike | Всплеск |
load_step | Шаг |
load_steps | Ступени |
load_to | До |
loop_max | Итерации |
loss | Потери пакетов |
max_ms | Лимит времени |
message | Сообщение |
method | Метод |
ms | Длительность |
name | Название |
outage_down | Отключён |
outage_up | Работает |
password | Пароль |
path | Путь |
pattern | Шаблон |
payload | Данные |
port | Порт |
profile_name | Имя профиля |
protocols | Подпротоколы |
qos | QoS |
rate | Темп |
rate_kbps | Полоса |
reason | Причина |
relay | Помехи |
reorder | Перестановка |
repeat | Серия отправок |
repeat_count | Число отправок |
repeat_duration | Длительность серии |
repeat_interval | Интервал |
repeat_jitter | Разброс |
reply | Ответ |
reply_address | Адрес ответа |
reply_arg | Аргумент ответа |
reply_args | Аргументы ответа |
reply_bind | Ответ на |
reply_pattern | Шаблон ответа |
reply_payload | Содержимое ответа |
reply_topic | Топик ответа |
reset | Сброс соединения |
responses | Ответы |
retained | Сохранённые сообщения |
retry | Повтор |
retry_delay | Пауза между попытками |
rule | Условие |
rule_value | Значение условия |
rules | Условия |
stall | Полуоткрытое |
status | Статус |
target | Цель |
threshold | Порог |
thresholds | Пороги |
timeout_ms | Таймаут |
to | Куда отвечать |
token | Токен |
topic | Топик |
url | URL |
username | Имя пользователя |
value | Значение |
variable | Переменная |
weight | Вес |