Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/vhiribarren/webrtc-sandbox
Some experimentations with WebRTC to test the technology.
https://github.com/vhiribarren/webrtc-sandbox
Last synced: about 1 month ago
JSON representation
Some experimentations with WebRTC to test the technology.
- Host: GitHub
- URL: https://github.com/vhiribarren/webrtc-sandbox
- Owner: vhiribarren
- License: mit
- Created: 2013-11-27T18:25:26.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2015-08-27T17:38:20.000Z (over 9 years ago)
- Last Synced: 2024-04-24T03:19:11.986Z (8 months ago)
- Language: JavaScript
- Size: 199 KB
- Stars: 0
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
WebRTC Experiments
==================This project contains a tiny signalling server to associate different
WebRTC clients, as well as some web pages with some experimentations
about WebRTC.It is a `nodejs` project, so you must have `node` installed on your system.
Install & Usage
---------------Download the project, and then:
$ npm install
$ node server.jsThe server port can be configured in the `config.js` file. By default, the port
used is 8080 so you can then open your web browser to http://127.0.0.1:8080`npm` can also be used to start the server or some mocha tests:
$ npm start
$ npm testThe registrar server
--------------------A tiny registrar / signalling server is at address http://127.0.0.1:8080/sig
It uses the SockJS library and use JSON elements to exchange messages.The protocol is described in the mocha test file (code style!).
Using SockJS, each client must send a register packet with its own id:
{'type': 'register', 'from': 'myId'}
In case of success, an ok is sent back:
{'type': 'ok', 'what': 'register'}
In case of error, an error is sent back:
{'type': 'error', 'code': 'duplicate-id'}
Once registered, clients can send data one to the other, using custom type
messages and custom fields. However, each message MUST have a `to`, `from`
and `type` fields:{'type': 'sdpOffer', 'from': 'myId', 'to': 'otherId', 'desc': 'SDP stuff'}
It is up to the clients to understand the message and its content.
For now, if a client disconnect, a broadcast message is sent to every registered
client. If the client with `myId` disconnect, other will receive:{'type': 'broadcast', 'from': 'myId', 'what': 'closed'}
The client is automatically unregistered if it closes its SockJS connection.
Multisink test
--------------The multisink test has 2 web pages:
* sink at `/multisink/index.html`
* source at `/multisink/source.html`The idea is to open one sink page, and several source page on devices with
a camera. Each time a stream is published, it appears on the sink page, which
can display all the streams at the same time.Tested with chrome 31.