WebSockets · Schema
WebSocket Message
Schema describing a complete WebSocket message. A message may consist of one or more frames and carries either text or binary data between endpoints.
Full DuplexNetworkingReal-Time CommunicationRFC 6455Web Technology
Properties
| Name | Type | Description |
|---|---|---|
| type | string | The type of the message, determined by the opcode of the first frame. Text messages contain UTF-8 data; binary messages contain raw bytes. |
| data | string | The message payload. For text messages this is a UTF-8 string. For binary messages this is base64-encoded binary data. |
| size | integer | The size of the message payload in bytes. |
| fragmented | boolean | Whether the message was delivered across multiple frames using fragmentation. |
| compressed | boolean | Whether the message was compressed using a negotiated extension such as permessage-deflate. |
| timestamp | string | The time at which the message was sent or received. |
JSON Schema
{
"$id": "websocket-message.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "WebSocket Message",
"description": "Schema describing a complete WebSocket message. A message may consist of one or more frames and carries either text or binary data between endpoints.",
"type": "object",
"required": [
"type",
"data"
],
"properties": {
"type": {
"type": "string",
"enum": [
"text",
"binary"
],
"description": "The type of the message, determined by the opcode of the first frame. Text messages contain UTF-8 data; binary messages contain raw bytes."
},
"data": {
"type": "string",
"description": "The message payload. For text messages this is a UTF-8 string. For binary messages this is base64-encoded binary data."
},
"size": {
"type": "integer",
"minimum": 0,
"description": "The size of the message payload in bytes."
},
"fragmented": {
"type": "boolean",
"default": false,
"description": "Whether the message was delivered across multiple frames using fragmentation."
},
"compressed": {
"type": "boolean",
"default": false,
"description": "Whether the message was compressed using a negotiated extension such as permessage-deflate."
},
"timestamp": {
"type": "string",
"format": "date-time",
"description": "The time at which the message was sent or received."
}
},
"additionalProperties": false
}