В обновлении 2.20 мы получили Subscription Response Rules (SRR). Благодаря им теперь можно задавать пользователю кастомный шаблон ответа в зависимости от его устройства. Однако в Templates нельзя каким-либо образом влиять на выбор hosts.
На данный момент существует проблема работы XHTTP на устройствах iOS из-за их ограничений по памяти, что требует специфической настройки xmux в extra json для таких устройств. Однако это замедляет скорость передачи данных, и использовать подобные настройки для всех остальных пользователей нецелесообразно.
Возможным вариантом решения является наличие двух (или более) hosts с различными extra json. Но такое решение является «костыльным».
Предложение: реализовать возможность объединять hosts в группы (например, использовать существующий tag, который сейчас применяется лишь для удобства администрирования) и в SRR создавать правила override hosts, допустим, следующего вида:
{
"name": "iOS",
"description": "Serve custom JSON for iOS",
"enabled": true,
"operator": "AND",
"conditions": [
{
"caseSensitive": false,
"headerName": "x-device-os",
"operator": "CONTAINS",
"value": "ios"
}
],
"responseType": "XRAY_JSON",
"responseModifications": {
"hostsOverride": [
{
"replaceFrom": "XHTTP_DEFAULT",
"replaceTo": "XHTTP_IOS"
}
]
}
}
Такой функционал также позволит изменять hosts пользователя не только в зависимости от его аккаунта (через external squads), но и от типа его устройства.