Changed tweets, added eca
This commit is contained in:
38
devjan_static/lib/events.js
Normal file
38
devjan_static/lib/events.js
Normal file
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
Event stream handling.
|
||||
|
||||
See https://developer.mozilla.org/en-US/docs/Web/API/EventSource for a more
|
||||
comprehensive explanation.
|
||||
*/
|
||||
|
||||
events = {};
|
||||
|
||||
(function($, exports) {
|
||||
var e = new EventSource('/events');
|
||||
|
||||
exports.connect = function(name, elements) {
|
||||
// wrap to allow selector, jQuery object and DOM nodes
|
||||
var $elements = $(elements);
|
||||
|
||||
// add listener that triggers events in DOM
|
||||
this.listen(name, function(message) {
|
||||
$elements.trigger('server-event', [message]);
|
||||
});
|
||||
};
|
||||
|
||||
exports.listen = function(name, callback) {
|
||||
// add event listener to event stream
|
||||
e.addEventListener(name, function(m) {
|
||||
try {
|
||||
var message = JSON.parse(m.data);
|
||||
} catch(err) {
|
||||
console.exception("Received malformed message: ",err);
|
||||
return;
|
||||
}
|
||||
|
||||
callback(message);
|
||||
});
|
||||
};
|
||||
})(jQuery, events);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user