设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 12274|回复: 10
打印 上一主题 下一主题

关于BRAC_GetOnlineUser()方法获取不到在线用户列表的问题?

[复制链接]

13

主题

42

帖子

133

积分

注册会员

Rank: 2

积分
133
跳转到指定楼层
楼主
发表于 2014-8-18 10:15:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
版主:
   你好!
   我现在使用anychat webSDK V4.9开发视频会议过程中遇到如下问题:
  使用BRAC_GetOnlineUser()方法获取在线用户列表数据时出现如下问题:

  1)如果在OnAnyChatRoomOnlineUser(dwUserCount, dwRoomId)回调方法中调用BRAC_GetOnlineUser()方法则能正常的获取到在线用户列表数据;
  2)在OnAnyChatRoomOnlineUser(dwUserCount, dwRoomId)回调方法之外的其它任何地方调用BRAC_GetOnlineUser()方法获取在线用户列表取回来的结果均为空????
  请问是什么原因???该如何解决?
谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

2

主题

79

帖子

612

积分

高级会员

Rank: 4

积分
612
沙发
发表于 2014-8-18 11:12:10 | 只看该作者
本帖最后由 佰锐技术-高萌 于 2014-8-18 11:17 编辑

您好,原因是需要收到OnAnyChatRoomOnlineUser之后,服务器才会将房间用户数据同步给客户端 。 也就是触发OnAnyChatRoomOnlineUser之后,调用BRAC_GetOnlineUser()才能获取到数据。

回复 支持 反对

使用道具 举报

13

主题

42

帖子

133

积分

注册会员

Rank: 2

积分
133
板凳
 楼主| 发表于 2014-8-18 11:15:12 | 只看该作者
那么我如果在其他地方要获取在线用户数据,应该如何获取呢?
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9102

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9102
地板
发表于 2014-8-18 11:18:20 | 只看该作者
您好:
1、建议升级SDK到最新版本V5.0;
2、BRAC_GetOnlineUser是最早期的API接口,表示获取当前房间内的在线用户列表,如果您希望获取大厅里面的用户列表,建议采用API:BRAC_GetUserFriends,使用方法可参考示例代码:AnyChatCallCenter,源代码位于SDK包src子目录下;
3、有关在线好友列表的详细说明请参考:http://bbs.anychat.cn/forum.php? ... &extra=page%3D1
回复 支持 反对

使用道具 举报

2

主题

79

帖子

612

积分

高级会员

Rank: 4

积分
612
5#
发表于 2014-8-18 11:18:40 | 只看该作者
lslizhonghua 发表于 2014-8-18 11:15
那么我如果在其他地方要获取在线用户数据,应该如何获取呢?

您好,收到OnAnyChatRoomOnlineUser之后调用BRAC_GetOnlineUser()就行了,不一定要在这个回调中
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
6#
发表于 2014-8-18 11:19:13 | 只看该作者
lslizhonghua 发表于 2014-8-18 11:15
那么我如果在其他地方要获取在线用户数据,应该如何获取呢?

进入房间成功后,OnAnyChatRoomOnlineUser是一定会触发一次的。在收到OnAnyChatRoomOnlineUser之后,就可以在其他地方获取了
回复 支持 反对

使用道具 举报

13

主题

42

帖子

133

积分

注册会员

Rank: 2

积分
133
7#
 楼主| 发表于 2014-8-18 11:23:58 | 只看该作者
你好,OnAnyChatRoomOnlineUser消息是在用户进入房间之后触发,你的意思是不是说,只要用户进入房间之后,在任何地方调用BRAC_GetOnlineUser()都能获取到在线用户数据?我实际使用的感受是只能在OnAnyChatRoomOnlineUser回调中调用BRAC_GetOnlineUser()才能获取到用户列表,应该怎么解决呢?
我现在采用的方式是通过将在OnAnyChatRoomOnlineUser回调中取到的在线用户保存到全局变量中的方法来实现,但是这样又会遭遇数据同步的问题,所以请给一个建议解决方法?谢谢!
回复 支持 反对

使用道具 举报

13

主题

42

帖子

133

积分

注册会员

Rank: 2

积分
133
8#
 楼主| 发表于 2014-8-18 11:28:18 | 只看该作者
廖斌 发表于 2014-8-18 11:19
进入房间成功后,OnAnyChatRoomOnlineUser是一定会触发一次的。在收到OnAnyChatRoomOnlineUser之后,就可 ...

按你的建议,在进入房间的时候,将在线用户信息保存下来,但是用户随时可能下线,什么时候去更新这个实时的在线数据呢?(因为文档中没有说用户下线的时候会同步在线用户到客户端)
回复 支持 反对

使用道具 举报

13

主题

42

帖子

133

积分

注册会员

Rank: 2

积分
133
9#
 楼主| 发表于 2014-8-18 11:34:14 | 只看该作者
好的,谢谢廖工的耐心解答,我再试试。
回复 支持 反对

使用道具 举报

5

主题

1269

帖子

3677

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3677
10#
发表于 2014-8-18 11:35:38 | 只看该作者
你的意思是不是说,只要用户进入房间之后,在任何地方调用BRAC_GetOnlineUser()都能获取到在线用户数据?

是的。
我实际使用的感受是只能在OnAnyChatRoomOnlineUser回调中调用BRAC_GetOnlineUser()才能获取到用户列表,应该怎么解决呢?

您是怎么测试的呢?可以用我们标准demo试试,进入房间后加个按钮,点击按钮获取一次。
我现在采用的方式是通过将在OnAnyChatRoomOnlineUser回调中取到的在线用户保存到全局变量中的方法来实现,但是这样又会遭遇数据同步的问题,所以请给一个建议解决方法?谢谢!

还有一种方法:设置一个全局的数组变量,在OnAnyChatRoomOnlineUser中获取一次。后续有用户离开或者进入房间会触发onAnyChatUserAtRoom,在 onAnyChatUserAtRoom中维护那个变量就行了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|AnyChat ( 粤ICP备13022410号-1 )  

GMT+8, 2024-9-29 22:36 , Processed in 0.208298 second(s), 22 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表