Auto-indexing service and GraphQL API for AT Protocol Records
quickslice.slices.network/
atproto
gleam
graphql
1--- a/server/build/packages/mist/src/mist/internal/http.gleam
2+++ b/server/build/packages/mist/src/mist/internal/http.gleam
3@@ -489,6 +489,9 @@ pub fn upgrade_socket(
4 |> result.replace_error(req),
5 )
6
7+ // Check for WebSocket subprotocol (e.g., graphql-transport-ws)
8+ let protocol = request.get_header(req, "sec-websocket-protocol")
9+
10 let permessage_deflate = websocket.has_deflate(extensions)
11
12 let accept_key = parse_websocket_key(key)
13@@ -500,6 +503,12 @@ pub fn upgrade_socket(
14 |> response.prepend_header("connection", "Upgrade")
15 |> response.prepend_header("sec-websocket-accept", accept_key)
16
17+ // Add subprotocol header if requested
18+ let resp = case protocol {
19+ Ok(proto) -> response.prepend_header(resp, "sec-websocket-protocol", proto)
20+ Error(_) -> resp
21+ }
22+
23 case permessage_deflate {
24 True ->
25 Ok(response.prepend_header(