> ## 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

> Kết nối WebSocket hai chiều.

<div className="real-category-page">
  Kết nối WebSocket hai chiều.

  ## Hàm có sẵn

  <CardGroup cols={2}>
    <Card title="WebSocket.Close" href="./websocket-close">
      Đóng WebSocket object được trả về bởi WebSocket.connect. Argument đầu tiên phải là table. Hàm đọc field connection state của object; khi có live state và state đó chưa destroyed hoặc closed, hàm đặt isClosed thành true và gửi một frame close frame rỗng qua WebSocket connection đã lưu. Hàm không nhận close code hoặc reason và không trả về values.
    </Card>

    <Card title="WebSocket.connect" href="./websocket-connect">
      Tạo hai BindableEvents, mở WebSocket client WebSocket connection tới URL được cung cấp và yield cho đến khi lần thử kết nối kết thúc. Khi thành công, hàm trả về WebSocket table có events OnMessage và OnClose, methods Send và Close do methods cung cấp, cùng connection state. Incoming message data được Fire qua OnMessage dưới dạng string. Khi receive loop kết thúc, OnClose được Fire không có arguments. Khi kết nối thất bại, hàm throw một error string bắt đầu bằng "WebSocket connection failed".
    </Card>

    <Card title="WebSocket.Send" href="./websocket-send">
      Gửi một Lua string qua WebSocket object được trả về bởi WebSocket.connect. Method mong đợi WebSocket table là argument đầu tiên và message string là argument thứ hai. Nó đọc connection state của object, throw "WebSocket state is missing" nếu object đó vắng mặt, trả về mà không gửi khi state đã destroyed hoặc closed, và gọi curl\_ws\_send với CURLWS\_TEXT theo mặc định hoặc CURLWS\_BINARY khi argument thứ ba tùy chọn là boolean true. Nó không trả về values và không báo số bytes đã gửi.
    </Card>
  </CardGroup>
</div>
