first commit

This commit is contained in:
s.golasch
2023-08-01 14:23:56 +02:00
commit 3a40ac5e5a
6 changed files with 137 additions and 0 deletions

BIN
.DS_Store vendored Normal file

Binary file not shown.

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
node_modules
*.sw*
db

41
browser.js Normal file
View 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
View 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
View 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
View 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"
}
}