docs(plugins): add documentation for WebSockets (#6432)

This commit is contained in:
nerix
2025-09-13 12:00:15 +02:00
committed by GitHub
parent 6229a37e9a
commit 60c3e1432a
2 changed files with 53 additions and 0 deletions
+1
View File
@@ -7,6 +7,7 @@
- Bugfix: Fixed an issue where the update button would be unclickable on macOS and Linux. (#6447, #6453)
- Bugfix: Fixed flickering tooltips on Wayland when the mouse cursor is over them. (#6451)
- Bugfix: Fixed an issue where the moderation icon was missing from the Moderation tab. (#6457)
- Dev: Added documentation for WebSockets to `wip-plugins.md`. (#6432)
## 2.5.4-beta.1
+52
View File
@@ -521,6 +521,58 @@ request:execute()
-- ConnectionRefusedError
```
#### `WebSocket`
This API allows you to connect to WebSocket servers. For example, you can do the following:
```lua
local ws = c2.WebSocket.new("wss://echo.websocket.org",
-- this object is optional
{
on_open = function()
print("Connection established")
end,
on_close = function()
print("Connection closed")
end
}
)
-- handlers can be passed in the constructor or set here
ws.on_text = function(data)
print("Got text: " .. data)
end
ws:send_text("Hello, World!")
```
##### `WebSocket.new(url[, options])`
Create and connect to a WebSocket server specified by `url`.
`options`, if specified, has to be a table with the following members (all optional):
| Key | Type | Description |
| ----------- | ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| `headers` | `table<string, string>` | Additional headers to set when connecting to the server. Any headers specified here will overwrite the ones Chatterino sets by default. |
| `on_open` | `fun()` | Called when the WebSocket handshake completed. |
| `on_text` | `fun(data: string)` | Handler for text messages. |
| `on_binary` | `fun(data: string)` | Handler for binary messages. Here, the data might not be valid UTF-8. |
| `on_close` | `fun()` | Handler for a close event. This handler is also called if the connection failed. |
The returned object has writable properties for the `on_close`, `on_text`, `on_binary`, and `on_open` handlers.
##### `WebSocket:send_text(data)`
Sends a text messsage to the server. If the socket is not yet connected, this message is queued and sent once a connection is established.
##### `WebSocket:send_binary(data)`
Sends a binary message to the server. If the socket is not yet connected, this message is queued and sent once a connection is established.
##### `WebSocket:close()`
Closes the WebSocket connection.
#### `Message`
Allows creation of rich chat messages. This is currently limited but is expected to be expanded soon.