socket-rtc
v1.0.3
Published
SocketRTC is a library that combines WebRTC and WebSocket to facilitate peer-to-peer communication. It allows for real-time communication between browsers and Node.js environments using WebRTC for direct peer-to-peer connections and WebSocket for signalin
Downloads
5
Maintainers
Readme
SocketRTC
SocketRTC is a library that combines WebRTC and WebSocket to facilitate peer-to-peer communication. It allows for real-time communication between browsers and Node.js environments using WebRTC for direct peer-to-peer connections and WebSocket for signaling.
Features
- Peer-to-peer communication using WebRTC
- Signaling through WebSocket
- Support for both browser and Node.js environments
- Event-based architecture
Installation
First, ensure you have Node.js installed. Then, install the package as shown below
npm install socket-rtc
This package works in the browser with browserify.
Usage
Server
const express = require('express');
const http = require('http');
const path = require('path');
const SocketRTC = require('socket-rtc');
const PORT = 8002;
const app = express();
app.use(express.static(path.join(__dirname)));
const server = http.createServer(app);
const rtc = new SocketRTC({ server });
rtc.on('connect', ({ id, pc }) => {
console.log('Connected to peer with id:', id);
rtc.send(JSON.stringify({ from: 'sserver',data: 'Hello, Peer! from node' }));
});
rtc.on('message', (data) => {
console.log('Received message:', JSON.parse(data));
});
app.get('/', (req, res) => {
res.sendFile(path.join(__dirname, 'index.html'));
});
server.listen(PORT, () => {
console.log(`Server is running on http://localhost:${PORT}`);
});
Client
Bundle the js file using browserify or any other bundler.
- Install
browserify
npm install -g browserify
const SocketRTC = require('socket-rtc');
let rtc = null;
let id;
id = 'user' + Math.floor(Math.random() * 10000);
rtc = new SocketRTC({ url: 'http://localhost:8002' }, id);
rtc.on('connect', () => {
console.log('connected');
rtc.send(JSON.stringify({ from: id, data: 'Hello, Peer!' }));
});
rtc.on('disconnect', () => {
console.log('disconnected')
});
rtc.on('message', (data) => {
if(JSON.parse(data).from !== id)
console.log(`message received: ${JSON.parse(data).data}`);
});
rtc.on('error', (err) => {
console.error(err)
});
- Bundle your JavaScript with Browserify: Use Browserify to bundle your JavaScript file so that it can be used in the browser.
browserify main.js -o bundle.js
- Include the bundled JavaScript file in your HTML file.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>SocketRTC</title>
</head>
<body>
<h1>SocketRTC Client</h1>
<script src="bundle.js"></script>
</body>
</html>