Skip to content

handleWebSocket

handleWebSocket<TEnv, TDurableObjectRpc, CFHostMetada>(request, env, _ctx, options): Promise<Response>

Defined in: packages/@livestore/sync-cf/src/cf-worker/worker.ts:149

Handles /websocket endpoint.

TEnv extends Env = Env

TDurableObjectRpc extends undefined | DurableObjectBranded = undefined

CFHostMetada = unknown

Request<CFHostMetada>

TEnv

ExecutionContext

{ name?: ExtractDurableObjectKeys<TEnv>; }

ExtractDurableObjectKeys<TEnv>

Needs to match the binding name from the wrangler config

Default

'WEBSOCKET_SERVER'

HeadersInit

(payload, context) => void | Promise<void>

Promise<Response>

const validatePayload = (payload: Schema.JsonValue | undefined, context: { storeId: string }) => {
console.log(`Validating connection for store: ${context.storeId}`)
if (payload?.authToken !== 'insecure-token-change-me') {
throw new Error('Invalid auth token')
}
}
export default {
fetch: async (request, env, ctx) => {
if (request.url.endsWith('/websocket')) {
return handleWebSocket(request, env, ctx, { headers: {}, validatePayload })
}
return new Response('Invalid path', { status: 400 })
}
}

If the payload is invalid