Xray-docs-next/docs/ru/config/transports/websocket.md

67 lines
4.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# WebSocket
Использует стандартный WebSocket для передачи данных.
Подключение WebSocket может быть проксировано другими HTTP-серверами (например, Nginx) и VLESS fallbacks path.
::: danger
**Рекомендуется переключиться на [XHTTP](https://github.com/XTLS/Xray-core/discussions/4113#discussioncomment-11468947), чтобы избежать значительных характеристик трафика, таких как WebSocket «ALPN is http/1.1».**
:::
::: tip
WebSocket распознает заголовок X-Forwarded-For в HTTP-запросе для перезаписи исходного адреса трафика, приоритет выше, чем у PROXY protocol.
:::
## WebSocketObject
`WebSocketObject` соответствует элементу `wsSettings` в конфигурации транспорта.
```json
{
"acceptProxyProtocol": false,
"path": "/",
"host": "xray.com",
"headers": {
"key": "value"
},
"heartbeatPeriod": 10
}
```
> `acceptProxyProtocol`: true | false
Только для входящих подключений, указывает, следует ли принимать PROXY protocol.
[PROXY protocol](https://www.haproxy.org/download/2.2/doc/proxy-protocol.txt) используется для передачи реального исходного IP-адреса и порта запроса, **если вы не знаете, что это такое, проигнорируйте этот параметр**.
Распространенные программы-обработчики обратного прокси (например, HAProxy, Nginx) можно настроить на его отправку, VLESS fallbacks xver также может его отправлять.
Если установлено значение `true`, то после установления TCP-соединения на самом нижнем уровне запрашивающая сторона должна сначала отправить PROXY protocol v1 или v2, иначе соединение будет закрыто.
> `path`: string
Путь, используемый WebSocket в HTTP-протоколе, значение по умолчанию — `"/"`.
Если в пути клиента есть параметр `ed` (например, ```/mypath?ed=2560```), будет активирован `Early Data` для уменьшения задержки.
> `host`: string
Хост, отправляемый в HTTP-запросе WebSocket, значение по умолчанию — пустое. Если значение на стороне сервера пустое, значение хоста, отправленное клиентом, не проверяется.
Если это значение указано на стороне сервера или `host` указан в `headers`, то проверяется соответствие хоста запроса клиента.
Приоритет выбора хоста для отправки клиентом: `host` > `headers` > `address`.
> `headers`: map \{string: string\}
Пользовательские HTTP-заголовки, пары ключ-значение, где каждый ключ представляет имя HTTP-заголовка, а соответствующее значение является строкой.
Значение по умолчанию: пустое.
> `heartbeatPeriod`: int
Задает интервал времени для отправки Ping-сообщений с целью поддержания соединения. Если не указано или указано значение 0, Ping-сообщения не отправляются (по умолчанию используется текущее поведение).
## Browser Dialer
Использует браузер для обработки TLS, подробнее см. в [Browser Dialer](../features/browser_dialer.md).