> ## Documentation Index
> Fetch the complete documentation index at: https://docs.projectreal.gg/llms.txt
> Use this file to discover all available pages before exploring further.

# WebSocket

> Двунаправленные соединения WebSocket.

<div className="real-category-page">
  Двунаправленные соединения WebSocket.

  ## Доступные функции

  <CardGroup cols={2}>
    <Card title="WebSocket.Close" href="./websocket-close">
      Закрывает WebSocket object, возвращенный WebSocket.connect. Первый argument должен быть table. Функция читает field connection state объекта. Если live state существует и еще не destroyed или closed, она устанавливает isClosed в true и отправляет пустой close frame frame через сохраненный WebSocket connection. Она не принимает close code или reason и не возвращает values.
    </Card>

    <Card title="WebSocket.connect" href="./websocket-connect">
      Создает два BindableEvents, открывает WebSocket client WebSocket connection к переданному URL и выполняет yield до завершения попытки подключения. При успехе возвращает WebSocket table с events OnMessage и OnClose, methods Send и Close из methods, а также connection state. Incoming message data вызывается через OnMessage как string. Когда receive loop завершается, OnClose вызывается без arguments. При ошибке подключения функция выбрасывает error string, начинающийся с "WebSocket connection failed".
    </Card>

    <Card title="WebSocket.Send" href="./websocket-send">
      Отправляет Lua string через WebSocket object, возвращенный WebSocket.connect. Method ожидает WebSocket table первым argument и message string вторым argument. Она читает connection state объекта, выбрасывает "WebSocket state is missing", если это object отсутствует, возвращается без отправки, когда state destroyed или closed, и вызывает curl\_ws\_send с CURLWS\_TEXT по умолчанию или CURLWS\_BINARY, когда необязательный третий argument является boolean true. Она не возвращает values и не сообщает количество отправленных bytes.
    </Card>
  </CardGroup>
</div>
