58 lines
1.3 KiB
JavaScript
58 lines
1.3 KiB
JavaScript
var http = require('http');
|
|
var Engine = require('engine.io-stream');
|
|
var browserify = require('browserify');
|
|
|
|
var level = require('level');
|
|
var multilevel = require('multilevel');
|
|
var liveStream = require('level-live-stream');
|
|
|
|
// webrtc
|
|
var webrtc = require('wrtc');
|
|
var pc = null;
|
|
var offer = null;
|
|
var answer = null;
|
|
|
|
/* 1. Global settings, data and functions. */
|
|
var dataChannelSettings = {
|
|
'reliable': {
|
|
ordered: true,
|
|
maxRetransmits: 0
|
|
},
|
|
};
|
|
|
|
var pcSettings = [
|
|
{
|
|
iceServers: [{url:'stun:stun.l.google.com:19302'}]
|
|
},
|
|
{
|
|
'optional': [{DtlsSrtpKeyAgreement: false}]
|
|
}
|
|
];
|
|
|
|
var pendingDataChannels = {};
|
|
var dataChannels = {};
|
|
|
|
var server = http.createServer(function (req, res) {
|
|
if (req.url == '/') {
|
|
res.end('<script src="/bundle.js"></script>');
|
|
} else if (req.url == '/bundle.js') {
|
|
browserify(__dirname + '/browser.js')
|
|
.bundle({debug: true})
|
|
.pipe(res);
|
|
} else {
|
|
res.end('Oops');
|
|
}
|
|
}).listen(5000);
|
|
|
|
var db = level(__dirname + '/db', {
|
|
valueEncoding: 'json'
|
|
});
|
|
|
|
liveStream.install(db);
|
|
multilevel.writeManifest(db, __dirname + '/manifest.json');
|
|
|
|
var multistream = multilevel.server(db);
|
|
var engine = Engine(function (con) {
|
|
con.pipe(multistream).pipe(con);
|
|
});
|
|
engine.attach(server, '/engine'); |