0

自分の ejabberd サーバー (XMPP) から Pusher または Pubnub (できれば Pusher) に移行することを検討しています。そして、この技術を使用して名簿機能を再現する最善の方法は何かと考えていました。

各ユーザーには、自分がサブスクライブしているプレゼンスとチャットできる可変数のユーザーがいます。

2つの方法が考えられますが、どちらが最適かはわかりません。

各ユーザーのプレゼンスを個別に購読するか、すべてのユーザーを 1 つの部屋に入れてすべてのプレゼンスを聞くことができます。

ただし、ユーザー数が数千に達すると、実行可能なソリューションではないことが想像できます。

どう思いますか ?

4

1 に答える 1

0
(function(){
    var p = PUBNUB.init({
       'subscribe_key':'foo',
       'publish_key':'bar'
    })
    var do_leave = function(message,env,channel){
        //leave code here

    };
    var do_join = function(message,env,channel){
       //join code here
    };
    var do_timeout = function(message,env,channel){
       //timeout code here

    };
    p.subscribe({
        channel    : "hello_world",                        // CONNECT TO THIS CHANNEL.
        message    : function( message, env, channel ) {}, // RECEIVED A MESSAGE.
        presence   : function( message, env, channel ) {
             if( message.action === 'leave' ){ // handle leave
                 do_leave.apply(this,arguments);
             }
             else if (message.action === 'join'){ // handle join
                 do_join.apply(this,arguments);

             }
             else{//timeout
                 do_timeout.apply(this,arguments);
             }
        }

   });

   // to get the current state use the here_now request
   p.here_now({
    channel  : 'hello_world',
    callback : function (message) { console.log(message) }
   });
})();

完全な開示 私は PubNub の従業員です。「何千ものスケーラブルな作業を行っていますか」という質問に対して? チャンネルごとに数千人をはるかに超える人がやってきたので、今のところ心配する必要はありません.

于 2013-08-05T17:17:46.313 に答える