2016-10-28 2 views
0

Ich baue eine soziale Netzwerk-Anwendung wie Facebook Twitter. In dieser Anwendung hat ein Benutzer viele Follower. Ich muss socket.io anwenden, wenn ich einen Status gebe, dann wird es nur auf einer Gruppe von Followern veröffentlicht, die nur diesem bestimmten Benutzer folgen. Ich habe socket.io in meiner Anwendung implementiert, aber jetzt funktioniert es alle Browser-Newsfeed, aber ich möchte Socket nur diejenigen, die mir folgen.Bewerben Socket.io in sozialen Netzwerken

I angewendet Buchse folgende Art und Weise, Auf Client

socket.emit('load-post', timelinePost); 
    socket.on('post-received', function(timelinePosts) { 
     $rootScope.timelinePosts = timelinePosts; 
    }); 

Server,

var io = require('socket.io')(server); 

    io.on('connection', function(socket) { 
     console.log('new connection made!'); 
     // Broadcast the post 
     socket.on('load-post', function(data) { 
      socket.emit('post-received', data); 
     }); 
     socket.on('disconnect', function() { 
      console.log('disconnected!'); 
     }); 
    }); 

Newsfeed-Funktionen, wo ich Buchse anwenden möchten,

getNewsFeedServices.getStatusPosts().then(function(successMessage) { 
     $rootScope.posts = successMessage.data; 
    }, function(errorMessage) { 
     console.log(errorMessage); 
    }); 

Diese Funktion lädt alle News-Feed-Informationen von Benutzer-Followern und bringt alle Follower-Posts heraus und dann wird der individuelle Kontoinhaber geladen. Aber ich möchte hier Socket anwenden, wenn Benutzer einen Status posten, dann bekommen nur Follower diesen Status. Wie kann ich das machen, irgendwelche Ideen?

Antwort

0

in Erwägung ziehen, erstellen Sie eine Room für jede Online-Person, und dann die neuen und alten aktiven Sockets (im Besitz von Anhängern) zu diesem Raum.

+0

Wenn ich Raum für eine Gruppe von Benutzern verwalte, wie kann ich dann den Status für einzelne Benutzerkonten aktualisieren. Angenommen, für 10 Benutzer habe ich room1 im Backend zugewiesen und dann auf Client-Seite, wie diese 10 Benutzer erkannt werden und den Status für diese Benutzer aktualisieren. Ich habe nur verwirrt, wie ich hier Raum oder Namespace anwenden kann. –

+0

Wenn P Q & R nach Mr X folgt, dann wenn X online geht, Raum callex roomX erstellen. und schließe dich P und Q an, dann, wenn R online kommt, erzeuge roomR. und auch R zu roomX. Jetzt vom Server jederzeit können Sie sagen, emittieren zu roomX. und es erreicht P Q R – enRaiser

+0

Ich bevölkere meinen folgenden Benutzer mit Mungo-Abfrage. Nur ich gebe meine Benutzer-ID an den Server, dann lädt sie alle meine folgenden Benutzer. In diesem Fall, wie die folgenden Benutzer zu erkennen sind, wenden Sie den Socket einzeln in diesem Benutzer-Browser an. –

Verwandte Themen