# @leede/webrtc-client

> WebRTC client library for connecting to @leede/webrtc-server

Latest version **1.0.0** (published 2022-02-20) · MIT license · 0 weekly downloads

## Install

```sh
npm install @leede/webrtc-client
pnpm add @leede/webrtc-client
yarn add @leede/webrtc-client
bun add @leede/webrtc-client
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2022-02-20 |
| First published | 2022-02-20 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 71.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Leede |
| Maintainers | gutnar |
| Keywords | webrtc, tcp, udp, websocket, broadcast, connection |

## Links

- npm: https://www.npmjs.com/package/@leede/webrtc-client
- Repository: https://github.com/leede-org/webrtc-server-client
- Homepage: https://github.com/leede-org/webrtc-server-client#readme
- Issues: https://github.com/leede-org/webrtc-server-client/issues
- npm.io page: https://npm.io/package/@leede/webrtc-client

## Alternatives

- [@opentelemetry/exporter-zipkin](https://npm.io/package/@opentelemetry/exporter-zipkin.md) — 14.8M weekly downloads
- [pusher-js](https://npm.io/package/pusher-js.md) — 2.0M weekly downloads
- [browserify](https://npm.io/package/browserify.md) — 1.7M weekly downloads
- [sqs-consumer](https://npm.io/package/sqs-consumer.md) — 1.7M weekly downloads
- [@sanity/eventsource](https://npm.io/package/@sanity/eventsource.md) — 930.8K weekly downloads

## Recent versions

- 1.0.0 (latest) — 2022-02-20

## README

# WebRTC Client

This package provides the client-side library for connecting to an instance of the server provided in the `@leede/webrtc-server` package. The client can be used in a browser as well as in a Node.js context.

Check out the [live demo](https://webrtc-server-client.leede.ee/demo/) or the [documentation](https://webrtc-server-client.leede.ee/docs/).

## Client installation

### Using a bundler such as webpack or browserify

When using a bundler such as webpack or browserify then import `WebRTCClient` from the `@leede/webrtc-client` package.

```sh
npm install @leede/webrtc-server
```

```ts
import { WebRTCClient } from "@leede/webrtc-client";
```

### Using bundled script to use the client on a webpage globally

The client can also be used by downloading `leede-webrtc-client-*.js` from the [releases listing](https://webrtc-server-client.leede.ee/releases/) and including the script on a webpage. The script defines a global `leede` namespace wherein the `WebRTCClient` class is available.

```html
<script src="leede-webrtc-client.js"></script>
<script>
  const client = new leede.WebRTCClient("ws://localhost:8000");
</script>
```

### Using the client in Node.js

The client can also be used in a Node.js context by providing some global variables from `ws` and `wrtc` packages.

```sh
npm install ws wrtc @leede/webrtc-server
```

```ts
const ws = require("ws");
const wrtc = require("wrtc");

global.WebSocket = ws.WebSocket;
global.RTCPeerConnection = wrtc.RTCPeerConnection;
global.RTCSessionDescription = wrtc.RTCSessionDescription;

// WebRTCClient can now be imported and used
import { WebRTCClient } from "@leede/webrtc-client";
```

## Basic client usage example

```ts
import { WebRTCClient } from "@leede/webrtc-client";

const client = new WebRTCClient("ws://localhost:8000");

client.on("open", () => {
  console.log("[CLIENT] Connected");

  // Send reliable TCP messages
  client.sendR("Hello from client over TCP");
  client.sendR(new Float32Array([1.0, 3.14]).buffer);

  // Send unreliable UDP messages
  client.sendU("Hello from client over UDP");
  client.sendU(Buffer.from([0, 1, 1, 2, 3, 5, 8, 13, 21, 34]));
});

// Handle string messages from server
client.on("message", (message) => {
  console.log("[CLIENT] Received message:", message);
});

// Handle binary messages from server
client.on("binary", (buffer) => {
  console.log("[CLIENT] Received buffer:", buffer);
});
```

For detailed usage, see the [client documentation](https://webrtc-server-client.leede.ee/docs/modules/_leede_webrtc_client.html).

---
_Source: https://npm.io/package/@leede/webrtc-client · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
