1
0
mirror of https://github.com/danbee/mpd-client synced 2025-03-04 08:39:09 +00:00
mpd-client/assets/js/services/server-events.service.js

33 lines
950 B
JavaScript

mpdClient.factory('serverEvents', function ($rootScope) {
var events = new EventSource('/api/stream'),
serverEvents = {
onUpdateQueue: function (callback) {
this.updateQueueCallback = callback
},
onUpdateStatus: function (callback) {
this.updateStatusCallback = callback
},
onUpdateTime: function (callback) {
this.updateTimeCallback = callback
}
}
events.onmessage = function(e) {
response = JSON.parse(e.data);
switch (response.type) {
case 'status':
$rootScope.$apply(function () { serverEvents.updateStatusCallback(response.data) })
break;
case 'queue':
$rootScope.$apply(function () { serverEvents.updateQueueCallback(response.data) })
break;
case 'time':
$rootScope.$apply(function () { serverEvents.updateTimeCallback(response.data) })
break;
}
}
return serverEvents
})