first commit
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
node_modules
|
||||||
|
*.sw*
|
||||||
|
db
|
||||||
41
browser.js
Normal file
41
browser.js
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
var Engine = require('engine.io-stream');
|
||||||
|
var multilevel = require('multilevel');
|
||||||
|
|
||||||
|
var manifest = require('./manifest.json');
|
||||||
|
|
||||||
|
var container = require('container-el');
|
||||||
|
var List = require('level-list');
|
||||||
|
|
||||||
|
var db = multilevel.client(manifest);
|
||||||
|
var con = Engine('/engine');
|
||||||
|
con.pipe(db.createRpcStream()).pipe(con);
|
||||||
|
|
||||||
|
window.db = db;
|
||||||
|
|
||||||
|
var list = List(db, function (row) {
|
||||||
|
var p = document.createElement('p');
|
||||||
|
p.appendChild(document.createTextNode(row.text));
|
||||||
|
return p;
|
||||||
|
});
|
||||||
|
|
||||||
|
container.appendChild(list.el);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
58
index.js
Normal file
58
index.js
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
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');
|
||||||
1
manifest.json
Normal file
1
manifest.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
{"methods":{"createReadStream":{"type":"readable"},"readStream":{"type":"readable"},"createValueStream":{"type":"readable"},"valueStream":{"type":"readable"},"createKeyStream":{"type":"readable"},"keyStream":{"type":"readable"},"createWriteStream":{"type":"writable"},"writeStream":{"type":"writable"},"isOpen":{"type":"sync"},"isClosed":{"type":"sync"},"put":{"type":"async"},"get":{"type":"async"},"del":{"type":"async"},"batch":{"type":"async"},"approximateSize":{"type":"async"},"createLiveStream":{"type":"readable"},"liveStream":{"type":"readable"}}}
|
||||||
34
package.json
Normal file
34
package.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"name": "talk",
|
||||||
|
"version": "0.0.0",
|
||||||
|
"description": "",
|
||||||
|
"main": "index.js",
|
||||||
|
"scripts": {
|
||||||
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
|
},
|
||||||
|
"author": "",
|
||||||
|
"license": "BSD",
|
||||||
|
"dependencies": {
|
||||||
|
"browserify": "~2.29.1",
|
||||||
|
"container-el": "0.0.1",
|
||||||
|
"domify": "~1.0.0",
|
||||||
|
"ecstatic": "~0.4.8",
|
||||||
|
"engine.io-client": "^1.5.1",
|
||||||
|
"engine.io-stream": "~0.4.1",
|
||||||
|
"enter-input": "0.0.0",
|
||||||
|
"level": "~0.15.0",
|
||||||
|
"level-list": "~0.10.0",
|
||||||
|
"level-live-stream": "~1.4.7",
|
||||||
|
"level-livefeed": "^0.2.0",
|
||||||
|
"level-master": "^1.0.2",
|
||||||
|
"level-replicate": "^1.2.1",
|
||||||
|
"level-sublevel": "~5.1.1",
|
||||||
|
"leveldown": "^1.3.0",
|
||||||
|
"multilevel": "~5.5.0",
|
||||||
|
"reactive-component": "~0.13.2",
|
||||||
|
"serverless-webrtc": "^1.0.5",
|
||||||
|
"sublevel": "^2.4.0",
|
||||||
|
"through": "^2.3.6",
|
||||||
|
"wrtc": "0.0.56"
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user