Revert "Add server sent events (#5279)" (#5880)

This reverts commit 17b4f53ba2 according to Github Desktop.

git checkout that commit
revert commit in GitHub Desktop
git switch -c revert-sse
uncommit in Github Desktop
switch to master, bringing changes
resolve deletions with command line
This commit is contained in:
Arlen22 2021-07-14 12:16:57 -04:00 committed by GitHub
parent 0924ca6365
commit be026aa308
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 17 additions and 259 deletions

View file

@ -1,56 +0,0 @@
/*\
title: $:/plugins/tiddlywiki/tiddlyweb/sse-client.js
type: application/javascript
module-type: startup
GET /recipes/default/tiddlers/:title
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.name = "/events/plugins/tiddlywiki/tiddlyweb";
exports.after = ["startup"];
exports.synchronous = true;
exports.platforms = ["browser"];
exports.startup = function() {
// Make sure we're actually being used
if($tw.syncadaptor.name !== "tiddlyweb") {
return;
}
// Get the mount point in case a path prefix is used
var host = $tw.syncadaptor.getHost();
// Make sure it ends with a slash (it usually does)
if(host[host.length - 1] !== "/") {
host += "/";
}
// Setup the event listener
setupEvents(host);
};
function debounce(callback) {
var timeout = null;
return function() {
clearTimeout(timeout);
timeout = setTimeout(callback,$tw.syncer.throttleInterval);
};
}
function setupEvents(host) {
if(window.EventSource) {
var events = new EventSource(host + "events/plugins/tiddlywiki/tiddlyweb");
var debouncedSync = debounce($tw.syncer.syncFromServer.bind($tw.syncer));
events.addEventListener("change",debouncedSync);
events.onerror = function() {
events.close();
setTimeout(function() {
setupEvents(host);
},$tw.syncer.errorRetryInterval);
};
}
}
})();

View file

@ -1,94 +0,0 @@
/*\
title: $:/plugins/tiddlywiki/tiddlyweb/sse-server.js
type: application/javascript
module-type: route
GET /events/plugins/tiddlywiki/tiddlyweb
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
var wikis = [];
var connections = [];
/*
Setup up the array for this wiki and add the change listener
*/
function setupWiki(wiki) {
var index = wikis.length;
// Add a new array for this wiki (object references work as keys)
wikis.push(wiki);
connections.push([]);
// Listen to change events for this wiki
wiki.addEventListener("change",function(changes) {
var jsonChanges = JSON.stringify(changes);
getWikiConnections(wiki).forEach(function(item) {
item.emit("change",jsonChanges);
});
});
return index;
}
/*
Setup this particular wiki if we haven't seen it before
*/
function ensureWikiSetup(wiki) {
if(wikis.indexOf(wiki) === -1) {
setupWiki(wiki);
}
}
/*
Return the array of connections for a particular wiki
*/
function getWikiConnections(wiki) {
return connections[wikis.indexOf(wiki)];
}
function addWikiConnection(wiki,connection) {
getWikiConnections(wiki).push(connection);
}
function removeWikiConnection(wiki,connection) {
var wikiConnections = getWikiConnections(wiki);
var index = wikiConnections.indexOf(connection);
if(index !== -1) {
wikiConnections.splice(index,1);
}
}
function handleConnection(request,state,emit,end) {
if(isDisabled(state)) {
return;
}
ensureWikiSetup(state.wiki);
// Add the connection to the list of connections for this wiki
var connection = {
request: request,
state: state,
emit: emit,
end: end
};
addWikiConnection(state.wiki,connection);
request.on("close",function() {
removeWikiConnection(state.wiki,connection);
});
}
function isDisabled(state) {
return state.server.get("sse-enabled") !== "yes";
}
// Import the ServerSentEvents class
var ServerSentEvents = require("$:/core/modules/server/server-sent-events.js").ServerSentEvents;
// Instantiate the class
var events = new ServerSentEvents("plugins/tiddlywiki/tiddlyweb", handleConnection);
// Export the route definition for this server sent events instance
module.exports = events.getExports();
})();

View file

@ -91,12 +91,10 @@ TiddlyWebAdaptor.prototype.getStatus = function(callback) {
self.isLoggedIn = json.username !== "GUEST";
self.isReadOnly = !!json["read_only"];
self.isAnonymous = !!json.anonymous;
var isSseEnabled = !!json.sse_enabled;
}
// Invoke the callback if present
if(callback) {
callback(null,self.isLoggedIn,json.username,self.isReadOnly,self.isAnonymous,isSseEnabled);
callback(null,self.isLoggedIn,json.username,self.isReadOnly,self.isAnonymous);
}
}
});