Newer
Older
var WSR = WebSocketReceiver = {
WSR.socket = new WebSocket(url);
WSR.socket.onmessage = WSR.onMessage;
WSR.socket.onopen = function() {
WSR.socket.send(location.pathname);
var message = $.parseJSON(evt.data);
if(message["class"].match(/^notifications$/)) {
Diaspora.page.notifications.showNotification(message);
else {
switch(message["class"]) {
case "retractions":
ContentUpdater.removePostFromStream(message.post_guid);
break;
case "comments":
ContentUpdater.addCommentToPost(message.post_guid, message.comment_guid, message.html);
break;
case "likes":
ContentUpdater.addLikesToPost(message.post_guid, message.html);
break;
default:
if(WSR.onPageForAspects(message.aspects_ids)) {
ContentUpdater.addPostToStream(message.html);
}
break;
}
}
onPageForAspects: function(aspectIds) {
var streamIds = $("#main_stream").attr("data-guids"),
found = false;
$.each(aspectIds, function(index, value) {
if(WebSocketReceiver.onStreamForAspect(value, streamIds)) {
return false;
onStreamForAspect: function(aspectId, streamIds) {
return (streamIds.search(aspectId) != -1);