Files
nym/documentation/docs/pages/developers/mix-websocket.mdx
T
mfahampshire 7c890ea0c5 TS SDK docs (#6840)
* First sweep packages + some minor tweaking

* Second sweep

* Regenerate lockfile + package.json mods

* Regenerate lockfile again

* Fix CI

* Fix CI again

* All building properly

* unblock

* Tweak examples

* Comments + readme + fix rotten unit test

* First pass docs

* Big pass

* Massive pass on new docs

* Update integrations.md w mobile

* Partial overhaul review

* new playground + big pass

* new fix lychee err

* IPR notice tweak
2026-06-09 13:31:08 +00:00

33 lines
2.4 KiB
Plaintext

---
title: "mix-websocket: WebSocket Over the Nym Mixnet"
description: "TypeScript package that exposes a WebSocket-like class for WS and WSS traffic routed through the Nym mixnet."
schemaType: "TechArticle"
section: "Developers"
lastUpdated: "2026-06-05"
---
# mix-websocket
[`@nymproject/mix-websocket`](https://www.npmjs.com/package/@nymproject/mix-websocket) exposes `MixWebSocket`, a class that mirrors the browser [`WebSocket`](https://developer.mozilla.org/en-US/docs/Web/API/WebSocket) API for traffic that needs to travel through the Nym mixnet. WS and WSS endpoints are reached via the [IPR (Internet Packet Router)](/network/infrastructure/exit-services#ip-packet-router) exit gateway; the destination server sees the connection coming from the IPR's IP, not yours.
```text
┌──────────────────────────────────────────────────────────────┐
│ Your browser app │
│ └─ new MixWebSocket('wss://...') │
│ └─ mix-tunnel (smolmix-wasm, Web Worker) │
│ └─ smoltcp userspace TCP/IP + rustls TLS │
│ └─ Nym mixnet → IPR exit gateway │
│ └─ destination WS server │
└──────────────────────────────────────────────────────────────┘
```
The TLS handshake (for `wss://` targets) terminates inside the WASM bundle, end-to-end with the destination. The IPR sees TCP frames addressed to the destination's IP and port; for WSS, the payload is TLS ciphertext.
## In this section
- [Get started](/developers/mix-websocket/get-started): install and open your first mixnet WebSocket.
- [Reference](/developers/mix-websocket/guides): sending and receiving, error handling, configuration.
- [Concepts & security](/developers/mix-websocket/concepts): how it differs from the browser WebSocket, and the security model.
- [TypeDoc reference](/developers/mix-websocket/api/globals): generated from the source.
- [Browser example](https://github.com/nymtech/nym/tree/develop/sdk/typescript/examples/mix-websocket/browser): a runnable example app.