mirror of
https://git.anonymousland.org/anonymousland/synapse.git
synced 2025-05-04 09:04:58 -04:00
Added event stream service which neatly blobs together requests / state for the event stream. This depends on matrix service to do the actual hit. Currently this has exactly the same behaviour as before.
This commit is contained in:
parent
c5f2da5875
commit
8bf3994c2e
5 changed files with 91 additions and 14 deletions
69
webclient/components/matrix/event-stream-service.js
Normal file
69
webclient/components/matrix/event-stream-service.js
Normal file
|
@ -0,0 +1,69 @@
|
|||
/*
|
||||
Copyright 2014 matrix.org
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
angular.module('eventStreamService', [])
|
||||
.factory('eventStreamService', ['matrixService', function(matrixService) {
|
||||
var settings = {
|
||||
from: "END",
|
||||
to: undefined,
|
||||
limit: undefined,
|
||||
shouldPoll: true
|
||||
};
|
||||
|
||||
// interrupts the stream. Only valid if there is a stream conneciton
|
||||
// open.
|
||||
var interrupt = function(shouldPoll) {
|
||||
console.log("[EventStream] interrupt("+shouldPoll+") "+
|
||||
JSON.stringify(settings));
|
||||
};
|
||||
|
||||
var saveStreamSettings = function() {
|
||||
localStorage.setItem("streamSettings", JSON.stringify(settings));
|
||||
};
|
||||
|
||||
return {
|
||||
// resume the stream from whereever it last got up to. Typically used
|
||||
// when the page is opened.
|
||||
resume: function() {
|
||||
console.log("[EventStream] resume "+JSON.stringify(settings));
|
||||
// run the stream from the latest token
|
||||
return matrixService.getEventStream(settings.from, 5000);
|
||||
},
|
||||
|
||||
// pause the stream. Resuming it will continue from the current position
|
||||
pause: function() {
|
||||
console.log("[EventStream] pause "+JSON.stringify(settings));
|
||||
// kill any running stream
|
||||
interrupt(false);
|
||||
// save the latest token
|
||||
saveStreamSettings();
|
||||
},
|
||||
|
||||
// stop the stream and wipe the position in the stream. Typically used
|
||||
// when logging out.
|
||||
stop: function() {
|
||||
console.log("[EventStream] stop "+JSON.stringify(settings));
|
||||
// kill any running stream
|
||||
interrupt(false);
|
||||
// clear the latest token
|
||||
settings.from = "END";
|
||||
saveStreamSettings();
|
||||
}
|
||||
};
|
||||
|
||||
}]);
|
Loading…
Add table
Add a link
Reference in a new issue