【问题标题】:Apply Socket.io in social network在社交网络中应用 Socket.io
【发布时间】:2017-03-10 22:02:36
【问题描述】:

我正在构建一个社交网络应用程序,例如 facebook twitter。在这个应用程序中,一个用户有很多关注者。当我给出状态时,我需要应用 socket.io 然后它只发布在只关注这个特定用户的关注者组上。我已经在我的应用程序中实现了 socket.io,但现在它可以在所有浏览器新闻源中工作,但我只想应用 socket 那些关注我的人。

我按照以下方式应用套接字, 在客户端,

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

服务器,

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!');
        });
    });

我想应用套接字的新闻提要功能,

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

此功能加载用户关注者的所有新闻提要信息并带出所有关注者帖子,然后加载个人帐户持有人。但是我想在用户发布状态时在此处应用套接字,然后只有关注者才能获得此状态。我该怎么做,有什么想法吗?

【问题讨论】:

    标签: angularjs node.js sockets websocket socket.io


    【解决方案1】:

    考虑为每个在线人创建一个Room,然后将新旧活动套接字(由关注者拥有)加入该房间。

    【讨论】:

    • 如果我为一组用户管理房间,那么如何更新单个用户帐户的状态。假设我在后端分配了 10 个用户 room1,然后在客户端如何检测这 10 个用户并更新这些用户的状态。我只是困惑如何在这里应用房间或命名空间。
    • 如果 P Q & R 关注 X 先生,那么当 X 上线时创建房间 callex roomX。并加入 P 和 Q,然后当 R 上线时创建 roomR。并将R加入到roomX。现在从服务器任何时候你都可以说发射到 roomX。它将达到 P Q R
    • 我使用猫鼬查询填充我的以下用户。只是我将我的用户 ID 传递给服务器,然后它会加载我的所有以下用户。在这种情况下,如何检测那些跟随用户在这些用户浏览器中单独应用套接字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多