---
title: createWebsocketHandoff
summary: Create a Response that instructs Fastly to pass the original request through as a WebSocket connection to the specified backend.
url: https://www.fastly.com/documentation/reference/compute/sdks/javascript/js-compute/websocket/fn.createWebsocketHandoff/
---

**Kind:** Function  
**Module:** [websocket](https://www.fastly.com/documentation/reference/compute/sdks/javascript/js-compute/websocket/)  
**Package:** @fastly/js-compute 4.0.1  
**Since:** 3.34.0  
**Source:** https://github.com/fastly/js-compute-runtime/blob/70cf30af4e657879b2d1e7eafab880e39e3a3f7d/types/websocket.d.ts#L30

```javascript
createWebsocketHandoff(request: Request, backend: string): Response
```

Create a [Response](https://www.fastly.com/documentation/reference/compute/sdks/javascript/js-compute/globals/interface.Response/) that instructs Fastly to pass the original request through as a
WebSocket connection to the specified backend.

**Note**: Can only be used when processing requests, not during build-time initialization.

**Parameters**

- `request`: `Request` — The request to pass through as a WebSocket connection
- `backend`: `string` — The name of the backend to send the request to (1–254 characters)

**Returns**

`Response`

**Throws**

- Throws an `Error` if `request` is not a [Request](https://www.fastly.com/documentation/reference/compute/sdks/javascript/js-compute/globals/interface.Request/) instance, or if `backend` is empty or longer than 254 characters

```js
import { createWebsocketHandoff } from "fastly:websocket";

async function handleRequest(event) {
    const url = new URL(event.request.url);
    if (url.pathname === '/stream') {
        return createWebsocketHandoff(event.request, 'websocket-backend');
    }
    return new Response('Not found', { status: 404 });
}

addEventListener("fetch", (event) => event.respondWith(handleRequest(event)));
```
