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

<div className="real-function-page">
  ```lua theme={null}
  WebSocket.connect(url: string): WebSocket
  ```

  ## Alias

  * `WebSocket.Connect`
  * `websocket.connect`
  * `websocket.Connect`

  ## Đối số

  <ParamField path={"url"} type={"string"} required>
    URL string được truyền vào CURLOPT\_URL trước khi WebSocket client thực hiện WebSocket connection attempt.
  </ParamField>

  ## Giá trị trả về

  <ResponseField name={"socket"} type={"WebSocket"}>
    WebSocket table chứa OnMessage, OnClose và connection state. Send và Close được resolve qua WebSocket object methods.
  </ResponseField>

  ## Ví dụ

  Mở WebSocket, kết nối OnMessage và OnClose, rồi dùng socket methods để gửi và đóng.

  ```lua theme={null}
  local socket = WebSocket.connect("wss://example.com/socket")

  socket.OnMessage:Connect(function(message)
      print(message)
  end)

  socket.OnClose:Connect(function()
      print("closed")
  end)

  socket:Send("hello")
  socket:Close()
  ```
</div>
