首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Primus +primus- room + sockjs:如何检索连接到房间的所有客户端

Primus +primus- room + sockjs:如何检索连接到房间的所有客户端
EN

Stack Overflow用户
提问于 2017-08-03 12:26:00
回答 1查看 212关注 0票数 1

我有一个运行在sockjs转换器上的primus服务器。我在用primus机房插件来支持房间。加入和离开房间是成功的,我可以发送信息给客户,是连接到特定的房间。

在某个时候,我需要检索特定房间中所有连接的客户端。我想用这个:https://github.com/cayasso/primus-rooms#primusroomroomclientsfn

代码语言:javascript
复制
primus.room('room').clients(fn);

但是fn函数总是返回null,即使有客户端连接到我所针对的房间。这就是我的实现:

代码语言:javascript
复制
var remoteRoom = 'the_room_I_need_to_target';
primus.room(remoteRoom).clients(function(clients){
    console.dir('primus clients in room ' + remoteRoom + ': ' + clients);
});

我是否需要配置一些额外的东西来让它运行?我在想,我需要为房间配置一个适配器,但我不确定它是做什么的,也不知道该怎么做。

为了有点完整,这是我最初的Primus设置:

代码语言:javascript
复制
var app = require('express')();
var server = require('http').Server(app);
var Primus = require('primus');
var Rooms = require('primus-rooms');
var primus = new Primus(server, {transformer: 'sockjs', pathname: '/primus/my-room'});
primus.plugin('rooms', Rooms);

我可以成功地参加和离开房间。加入和离开是由客户机中的一些操作触发的:

代码语言:javascript
复制
primus.on('connection', function (spark) {
    spark.on('data', function(data) {

    data = data || {};

    var action = data.action;
    var roomToJoin = data.roomToJoin;

    if ('join' === action) { //join room
        spark.join(roomToJoin, function () {
            logger.debug('primus id ' + spark.id + ' joined room ' + roomToJoin);    
        });
    }else if ('leave' === action) { //leave room
        spark.leave(roomToJoin, function () {
            logger.debug('primus id ' + spark.id + ' left room ' + roomToJoin);

        });
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-30 07:29:28

处理程序函数是fn(错误,客户端),而不是fn(客户端)。将代码更改为以下代码将导致预期的行为:

代码语言:javascript
复制
var remoteRoom = 'the_room_I_need_to_target';
primus.room(remoteRoom).clients(function(error, clients){
    console.dir('primus clients in room ' + remoteRoom + ': ' + clients);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45484152

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档