chat.yakka.getRealtimeTicket

yakka.chat

Documentation

Issue a short-lived, single-use ticket for opening the realtime socket (ADR 0034 §3). A browser cannot set headers on a WebSocket, and a cookie is the wrong instrument across origins — so the ticket goes in the socket URL, which is why it must be worth little: it authenticates one upgrade, once, within seconds. The socket is the appview's primary surface (ADR 0011), so this is not an afterthought but the only authenticated path for most of what a client does.

main procedure

Issue a short-lived, single-use ticket for opening the realtime socket (ADR 0034 §3). A browser cannot set headers on a WebSocket, and a cookie is the wrong instrument across origins — so the ticket goes in the socket URL, which is why it must be worth little: it authenticates one upgrade, once, within seconds. The socket is the appview's primary surface (ADR 0011), so this is not an afterthought but the only authenticated path for most of what a client does.

Output

Encodingapplication/json
Schema#output
Try It

Requests are sent directly from your browser. Some servers may block requests due to CORS.

Base URL for XRPC calls (e.g., https://bsky.social)
View raw schema
{
  "type": "procedure",
  "output": {
    "schema": {
      "ref": "#output",
      "type": "ref"
    },
    "encoding": "application/json"
  },
  "description": "Issue a short-lived, single-use ticket for opening the realtime socket (ADR 0034 §3).\n\nA browser cannot set headers on a WebSocket, and a cookie is the wrong instrument across origins — so the ticket goes in the socket URL, which is why it must be worth little: it authenticates one upgrade, once, within seconds. The socket is the appview's primary surface (ADR 0011), so this is not an afterthought but the only authenticated path for most of what a client does."
}
output object

No description available.

Properties

expiresAt string datetime Required

An RFC 3339 formatted timestamp.

socket string uri Required

The URL to open, ticket already appended. Handed over whole so a client is never assembling an authenticated URL itself.

ticket string Required

No description available.

View raw schema
{
  "type": "object",
  "required": [
    "ticket",
    "expiresAt",
    "socket"
  ],
  "properties": {
    "socket": {
      "type": "string",
      "format": "uri",
      "description": "The URL to open, ticket already appended. Handed over whole so a client is never assembling an authenticated URL itself."
    },
    "ticket": {
      "type": "string"
    },
    "expiresAt": {
      "type": "string",
      "format": "datetime"
    }
  }
}

Lexicon Garden

@