7c890ea0c5
* 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
33 lines
2.4 KiB
Plaintext
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.
|