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

> 创建两个 BindableEvents，打开到给定 URL 的 WebSocket client WebSocket connection，并 yield 直到连接尝试完成。成功时，它返回一个 WebSocket table，其中包含 OnMessage 和 OnClose events、由 methods 提供的 Send 和 Close methods，以及 connection state。incoming message data 会作为 string 通过 OnMessage 触发。receive loop 结束时，OnClose 会在没有 arguments 的情况下触发。连接失败时，该函数会抛出以 "WebSocket connection failed" 开头的 error string。

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

  ## 别名

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

  ## 参数

  <ParamField path={"url"} type={"string"} required>
    在 WebSocket client 执行 WebSocket connection attempt 之前传给 CURLOPT\_URL 的 URL string。
  </ParamField>

  ## 返回值

  <ResponseField name={"socket"} type={"WebSocket"}>
    包含 OnMessage、OnClose 和 connection state 的 WebSocket table。Send 和 Close 通过 WebSocket object methods 解析。
  </ResponseField>

  ## 示例

  打开 WebSocket，连接 OnMessage 和 OnClose，然后使用 socket methods 发送并关闭。

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