mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-13 13:03:20 +00:00
37 lines
895 B
JavaScript
37 lines
895 B
JavaScript
define([
|
|
"underscore",
|
|
"backbone",
|
|
"common/websockets/connection"
|
|
], function (_, Backbone, WSConnection) {
|
|
var currentTopic = null;
|
|
var callbackStack = [];
|
|
|
|
var callbackHandler = function (topic, msg) {
|
|
_.each(callbackStack, function(cb) {
|
|
cb(topic, msg);
|
|
});
|
|
};
|
|
|
|
var reset = function () {
|
|
callbackStack = [];
|
|
currentTopic = null;
|
|
};
|
|
|
|
return {
|
|
'register': function (topic) {
|
|
this.unregister();
|
|
WSConnection.subscribe(topic, callbackHandler);
|
|
currentTopic = topic;
|
|
},
|
|
'unregister': function () {
|
|
if (currentTopic !== null) {
|
|
WSConnection.unsubscribe(currentTopic);
|
|
reset();
|
|
}
|
|
},
|
|
'pushCallback': function (callback) {
|
|
callbackStack.push(callback);
|
|
}
|
|
}
|
|
});
|