Skype for Business Web SDK - 参与者对象为空

时间:2016-06-30 12:37:21

标签: skype-for-business skypedeveloper

通过Skype for Business Web SDK创建会议时,conversation对象包含participants列表,其中包含表示该会议参与者详细信息的对象。这是有效的,我们可以看到我们期望的所有参与者。

但是当加入其他人通过Skype for Business Web SDK创建的会议时,participants列表始终为空,尽管知道有其他用户已连接的事实参加那次会议。

这是SDK中的错误吗?任何帮助将不胜感激!

编辑:在建议后更新更多信息

我们使用以下代码检索conversation对象(注意我们是通过URI检索它):

app.conversationsManager.getConversationByUri(uri);

以下是试验conversation对象的输出:

conversation.participants()返回[]

conversation.participants返回function [Collection: 0 items]

conversation.participants.get().then(function(participants) {
    console.log(participants)
})

记录Promise {task_ccf0d98018eaf: Task}

2 个答案:

答案 0 :(得分:1)

getConversationByUri实际上并未加入会议。它只是检索一个对话模型。您需要实际启动其中一项服务(conversation.chatService.start()conversation.audioService.start()等)才能加入会议。加入会议后,与会者将收集与会者的最新信息。

答案 1 :(得分:0)

有些事情可能会阻止参加对话/会议的参与者:

  • 事件尚未发布,表明谁是有效的
  • 包含参与者的集合尚未更新(延迟加载)

如果您想获得准确的计数,最好通过在集合上提出类似于以下的请求来获得最佳服务:

conv.participants.get().then(function (participants) {
    // participants is an array of currently active persons in the conversation/meeting
});

您还可以通过收听参与者集合中添加/删除的事件来在本地跟踪。

conv.participants.added(function (person) {
    // add to local list...
});

conv.participants.removed(function (person) {
    // remove from local list...
});

如果不是这种情况,那么知道用什么代码来观察参与者的空列表会很有趣。