Skip to content
DocsGuidesReferenceBlog
Install
HomeDocsGuidesReferenceBlog
Install Bun v1.4.0
Reference
Modules/Bun/ServerWebSocket/data
  • Pdata

Modules

  • Bun
  • bun:bundle
  • bun:ffi
  • bun:jsc
  • bun:sqlite
  • bun:test
  • Globals
  • node:assert
  • node:async_hooks
  • node:buffer
  • node:child_process
  • node:cluster
  • node:crypto
  • node:dgram
  • node:diagnostics_channel
  • node:dns
  • node:dns/promises
  • node:events
  • node:ffi
  • node:fs
  • node:fs/promises
  • node:http
  • node:http2
  • node:https
  • node:inspector
  • node:inspector/promises
  • node:module
  • node:net
  • node:os
  • node:path
  • node:perf_hooks
  • node:punycode
  • node:querystring
  • node:quic
  • node:readline
  • node:readline/promises
  • node:stream
  • node:stream/consumers
  • node:stream/iter
  • node:stream/promises
  • node:stream/web
  • node:string_decoder
  • node:test
  • node:test/reporters
  • node:timers/promises
  • node:tls
  • node:trace_events
  • node:tty
  • node:url
  • node:util
  • node:util/types
  • node:v8
  • node:vm
  • node:wasi
  • node:worker_threads
  • node:zlib
  • node:zlib/iter

property

ServerWebSocket.data

data: T

Custom data you can assign to a client. It can be read and written at any time.

import { serve } from "bun";

serve({
  fetch(request, server) {
    const data = {
      accessToken: request.headers.get("Authorization"),
    };
    if (server.upgrade(request, { data })) {
      return;
    }
    return new Response();
  },
  websocket: {
    data: {} as {accessToken: string | null},
    message(ws) {
      console.log(ws.data.accessToken);
    }
  }
});