forked from cory/tildefriends
Still not syncing with the other clients I want but fighting to try to get it.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@3701 ed5197a5-7fde-0310-b194-c3ffbd925b24
This commit is contained in:
27
core/ssb.js
27
core/ssb.js
@ -62,12 +62,17 @@ function get_latest_sequence_for_author(author) {
|
||||
return sequence;
|
||||
}
|
||||
|
||||
function storeMessage(message) {
|
||||
var payload = message.message.value ? message.message.value : message.message;
|
||||
if (typeof(payload) == 'object') {
|
||||
ssb.storeMessage(payload);
|
||||
}
|
||||
}
|
||||
|
||||
ssb.addEventListener('connections', function(change, connection) {
|
||||
if (change == 'add') {
|
||||
var sequence = get_latest_sequence_for_author(connection.id);
|
||||
connection.send_json({'name': ['createHistoryStream'], 'type': 'source', 'args': [{'id': connection.id, 'seq': sequence, 'live': true, keys: false}]}, function(message) {
|
||||
ssb.storeMessage(message.message.value ? message.message.value : message.message);
|
||||
});
|
||||
connection.send_json({'name': ['createHistoryStream'], 'type': 'source', 'args': [{'id': connection.id, 'seq': sequence, 'live': true, 'keys': false}]}, storeMessage);
|
||||
connection.send_json({'name': ['blobs', 'createWants'], 'type': 'source', 'args': []}, function(message) {
|
||||
Object.keys(message.message).forEach(function(id) {
|
||||
if (message.message[id] < 0) {
|
||||
@ -92,12 +97,14 @@ ssb.addEventListener('connections', function(change, connection) {
|
||||
}
|
||||
});
|
||||
});
|
||||
followingDeep(g_database, [ssb.whoami()], 2).then(function(ids) {
|
||||
var me = ssb.whoami();
|
||||
followingDeep(g_database, [me], 2).then(function(ids) {
|
||||
for (let id of ids) {
|
||||
if (id == me) {
|
||||
continue;
|
||||
}
|
||||
var sequence = get_latest_sequence_for_author(id);
|
||||
connection.send_json({'name': ['createHistoryStream'], 'type': 'source', 'args': [{'id': id, 'seq': sequence, 'live': true, 'keys': false}]}, function(message) {
|
||||
ssb.storeMessage(message.message.value ? message.message.value : message.message);
|
||||
});
|
||||
connection.send_json({'name': ['createHistoryStream'], 'type': 'source', 'args': [{'id': id, 'seq': sequence, 'live': true, 'keys': false}]}, storeMessage);
|
||||
}
|
||||
});
|
||||
} else if (change == 'remove') {
|
||||
@ -140,6 +147,12 @@ ssb.addRpc(['blobs', 'get'], function(request) {
|
||||
}
|
||||
});
|
||||
|
||||
ssb.addRpc(['gossip', 'ping'], function(request) {
|
||||
request.more(function(message) {
|
||||
message.send_json(message.message);
|
||||
});
|
||||
});
|
||||
|
||||
ssb.addRpc(['createHistoryStream'], function(request) {
|
||||
var id = request.args[0].id;
|
||||
var seq = request.args[0].seq;
|
||||
|
Reference in New Issue
Block a user