2017-02-07 27 views
2

在我的聊天应用程序中,我想知道频道会员是否在线,但'userInfoUpdated'在新会员来临时不会触发,member.userInfo.online在我想要时总是为空。我究竟做错了什么?Twilio聊天会员在线状态永远为空

UPD: 下面的代码暂停对成员“更新”,甚至,会员的userInfo.online领域仍然null enter image description here

UPD2: 现在我发现这条线从文件建立

扩展用户信息请注意,UserInfo#online和UserInfo#通知属性仅在启用可达性功能时才有资格使用。您可以检查它是否是通过读取客户的价值启用〜reachabilityEnabled docs

最后设置reachabilityEnabled在后端这里解决我的问题

+0

您可以分享您使用的代码吗?你什么时候调用'member.userInfo.online'?你什么时候开始倾听'userInfoUpdated'? – philnash

+0

我在client.getChannelByUniqueName(uniqueName).then(channel => {channel.getMembers()。forEach(member => {'userInfoUpdated','userInfoUpdated')' ()=> { //什么都没发生 }) }) })' –

回答

1

在后端设置reachabilityEnabled解决了我的问题

0

Twilio开发布道者。

从您的评论说你的代码是:

client.getChannelByUniqueName(uniqueName).then(channel => { 
    channel.getMembers().forEach(member => { 
    member.on('userInfoUpdated',()=>{ //nothing happening }) 
    }) 
}) 

我想我看到的问题。 channel.getMembers() returns a Promise将与一个Member对象数组异步解析。您只需在Promise上致电forEach。尝试像这样:

client.getChannelByUniqueName(uniqueName).then(channel => { 
    return channel.getMembers() 
}).then(members => { 
    members.forEach(member => { 
    member.on('userInfoUpdated',()=>{ // something happening? }) 
    }) 
}) 

让我知道这是否有所帮助。

+0

你说得对,我误解了这个例子,但它仍然以同样的方式工作,我的意思是它不起作用。即使当列表中的用户加入频道“userInfoUpdated”没有触发并在调试器中检查用户列表时,用户在线字段为空 –

+0

用户“更新”事件触发,但即使在此事件处理程序中,用户的在线字段为仍然是'空' –