日本語 | English
We have released a new WebRTC platform, ECLWebRTC, to take the place of SkyWay. We will be shutting down the SkyWay servers in March 2018. Customers who are currently using SkyWay are required to migrate to ECLWebRTC by then or their services will stop working.
If you are looking for the repository of ECLWebRTC, please use MeshRoom class and SFURoom Class.
This is a library for easy implementation of group video chat with SkyWay(http://nttcom.github.io/skyway/).
// Generate a MultiParty instance.
multiparty = new MultiParty( {
"key": "********-****-****-****-************" /* SkyWay key */,
"reliable": true /* Use reliable communication(SCTP) in Data Channel. */
});
// for MediaStream
//
multiparty.on('my_ms', function(video) {
// Show my video.
var vNode = MultiParty.util.createVideoNode(video);
vNode.volume = 0;
$(vNode).appendTo("#streams");
}).on('peer_ms', function(video) {
// Show peer's video.
var vNode = MultiParty.util.createVideoNode(video);
$(vNode).appendTo("#streams");
}).on('ms_close', function(peer_id) {
// Remove the video node when peer is disconnected.
$("#"+peer_id).remove();
})
// for DataChannel
//
$("button").on('click', function(ev) {
multiparty.send('hello'); /* Send message to the connected peers. */
});
multiparty.on('message', function(mesg) {
$("p.receive").append(mesg.data + "<br>"); /* Show the received message. */
});
// Connect to the server and peers
multiparty.start()
examples/multiparty-sample.html
. (Please be sure that localhost
is registered in your APIKEY setting)$ npm install
$ npm run webpack-dev-server
In case you don't have APIKEY, please sign-up SkyWay account and obtain API key at https://skyway.io/ds/.
$ npm install skyway-multiparty
const MultiParty = require('skyway-multiparty')
var multiparty = new MultiParty([options]);
options
default : false
default : binary
default: true
default: true
default: true
default: 3000
0 Prints no logs.
1 Prints only errors.
2 Prints errors and warnings.
3 Prints all logs.
{ 'iceServers': [{ 'url': 'stun:stun.skyway.io:3478' }] }
.Connect to the SkyWay server and all peers.
multiparty.on(event, callback);
multiparty.on('open', function(myid){ ... });
multiparty.on('my_ms', function({"src": <object url>, "id": <myid>}){...});
multiparty.on('peer_ms', function({"src": <object url>, "id": <peer-id>, "reconnect": <true or false>}){ ... });
multiparty.on('peer_ss', function({"src": <object url>, "id": <peer-id>, "reconnect": <true or false>}){ ... });
multiparty.on('ms_close', function(peer-id){ ... });
multiparty.on('ss_close', function(peer-id){ ... });
multiparty.on('dc_open', function(peer-id){ ... });
multiparty.on('message', function({"id": <peer-id>, "data": <data>}){ ... });
multiparty.on('dc_close', function(peer-id){ ... });
multiparty.on('error', function(error){ ... });
Mute current video/audio.
multiparty.mute({"video": <true of false>, "audio": <true or false>);
Unmute current video/audio.
multiparty.unmute({"video": <true of false>, "audio": <true or false>);
Close peer's media stream and data stream.
multiparty.removePeer(peer-id);
Send data to every peer.
multiparty.send(data);
Close every connection.
multiparty.close();
Start screen share.
multiparty.startScreenShare(function(stream){
// success callback
}, function(err) {
// error callback
});
Stop screen share.
multiparty.stopScreenShare();
Get all of the connected peer ids.
multiparty.listAllPeers(function(lists) { ... });
Reconnect the disconnected peer.
multiparty.reconnect(peer_id, function({"video": <boolean>, "screen": <boolean>, "data": <boolean>}){ ... });
Create video node from Object URL.
var vNode = MultiParty.util.createVideoNode({"src": object_url, "id": peer_id}){ ... });