> ## 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.connect가 반환한 WebSocket object를 닫습니다. 첫 번째 argument는 table이어야 합니다. 함수는 object의 connection state를 읽습니다. live state가 있고 아직 destroyed 또는 closed 상태가 아니면 isClosed를 true로 설정하고 저장된 WebSocket connection을 통해 빈 close frame frame을 보냅니다. close code 또는 reason을 받지 않으며 values를 반환하지 않습니다.
    </Card>

    <Card title="WebSocket.connect" href="./websocket-connect">
      두 개의 BindableEvents를 만들고, 제공된 URL로 WebSocket client WebSocket connection을 열며, 연결 시도가 끝날 때까지 yield합니다. 성공하면 OnMessage 및 OnClose events, methods에서 제공되는 Send 및 Close methods, connection state가 있는 WebSocket table을 반환합니다. incoming message data는 string으로 OnMessage를 통해 Fire됩니다. receive loop가 끝나면 OnClose가 arguments 없이 Fire됩니다. 연결 실패 시 함수는 "WebSocket connection failed"로 시작하는 error string을 발생시킵니다.
    </Card>

    <Card title="WebSocket.Send" href="./websocket-send">
      WebSocket.connect가 반환한 WebSocket object를 통해 Lua string을 보냅니다. 이 method는 첫 번째 argument로 WebSocket table, 두 번째 argument로 message string을 예상합니다. object의 connection state를 읽고, 해당 object가 없으면 "WebSocket state is missing"을 발생시킵니다. state가 destroyed 또는 closed이면 보내지 않고 반환하며, 기본적으로 CURLWS\_TEXT로 curl\_ws\_send를 호출하거나 선택적 세 번째 argument가 boolean true이면 CURLWS\_BINARY로 호출합니다. values를 반환하지 않고 전송된 bytes 수도 보고하지 않습니다.
    </Card>
  </CardGroup>
</div>
