AnyChat技术支持论坛

标题: 关于房间 [打印本页]

作者: 七月初四    时间: 2013-8-14 15:26
标题: 关于房间
您好,刚下载使用了anychat软件,部署测试了一下。有几个疑问
1、服务器房间怎么设置的,我看到下载部署后默认有4个房间,请问房间数量及代号可以设置吗?在哪儿设置呢。
2、怎么控制客户端登录时进入房间的权限,比如说客户端A只能进1号房间,客户端B只能进2号房间。
作者: admin    时间: 2013-8-14 15:35
您好:
1、评估版本的服务器只有4个房间,授权版本房间数量没有限制,客户端调用API:BRAC_EnterRoom(roomid)进入房间时,核心服务器会自动创建房间,所以房间号完全由业务层自己来控制、分配即可;
2、客户端进入房间的权限由业务层来控制,AnyChat应该是独立于业务逻辑、权限管理之下的只负责音频、视频交互的功能模块,可以在客户端来控制权限,比如客户端A在显示时,只显示1号房间,不显示2号房间;也可以在业务服务器来控制,在客户端A进入房间时,会触发业务服务器的OnUserPrepareEnterRoom(userid,roomid)的回调函数,这时业务服务器可以对用户权限进行判断,允许进入返回0,不允许进入返回非0的出错代码,有关业务逻辑控制可参考AnyChat SDK包里面的《AnyChat Server SDK开发指南》,以及:http://bbs.anychat.cn/forum.php? ... &extra=page%3D1
作者: 七月初四    时间: 2013-8-14 16:08
admin 发表于 2013-8-14 15:35
您好:
1、评估版本的服务器只有4个房间,授权版本房间数量没有限制,客户端调用API:BRAC_EnterRoom(room ...

关于第一条我是不是可以这样理解,评估版本只有4个房间,客户端申请进入房间时roomid只能从1、2、3、4四个数字之间选择。并且假如客户端申请进入房间1时,房间1不存在,核心服务器会自动创建一个roomid为1的房间,而假如用户申请进入房间1时,房间1已经存在,则客户端直接进入房间1。
另外“房间号完全由业务层自己来控制、分配即可”没搞明白,是说的房间号由客户端来控制吗?还是由业务服务器控制?我感觉您的意思是由客户端控制吧。
作者: admin    时间: 2013-8-14 16:15
您好:
1、您的理解是对的,核心服务器会自动管理(创建、回收)房间,如果房间不存在,则创建后进入,如果房间已经存在,则直接进入,服务器创建房间对客户端来说是透明的。
2、“房间号完全由业务层自己来控制、分配即可”,业务层包括客户端,也包括业务服务器,主要看上层业务如何来设计,通常来说都是由业务服务器来控制,下发指令给客户端,指令中附带一个参数房间号,然后客户端进入指定的房间即可。
作者: 七月初四    时间: 2013-8-14 16:22
admin 发表于 2013-8-14 16:15
您好:
1、您的理解是对的,核心服务器会自动管理(创建、回收)房间,如果房间不存在,则创建后进入,如 ...

get it  thanks
作者: lincy    时间: 2014-11-28 11:04
请问, 核心服务器会自动管理(创建、回收)房间,是否可以理解为:根据BRAC_EnterRoom(roomid)中的roomid自动创建相应编号的房间;当房间里没有用户时自动回收?
作者: lincy    时间: 2014-11-28 11:06
是否可以自动编号?
作者: admin    时间: 2014-11-28 11:07
是否可以理解为:根据BRAC_EnterRoom(roomid)中的roomid自动创建相应编号的房间;当房间里没有用户时自动回收?

是的,还可以用BRAC_EnterRoomEx(roomname)来创建房间,其中roomname为字符串参数,核心服务器会自动分配、回收房间。
作者: lincy    时间: 2014-11-28 11:12
admin 发表于 2014-11-28 11:07
是的,还可以用BRAC_EnterRoomEx(roomname)来创建房间,其中roomname为字符串参数,核心服务器会自动分配 ...

明白了,谢谢
作者: lincy    时间: 2014-11-28 11:18
请问如何获取当前房间信息,包括:1、当前存在的房间列表,2、每个房间的使用情况(房间里有几个用户等)。
作者: admin    时间: 2014-11-28 11:47
您好,业务服务器上面有回调事件,比如:OnUserEnterRoomActionCallBack、OnUserLeaveRoomActionCallBack等,您可以在这些回调事件中对房间数据进行管理,如保存房间列表、房间用户列表等。

作者: lincy    时间: 2014-11-28 13:09
admin 发表于 2014-11-28 11:47
您好,业务服务器上面有回调事件,比如:OnUserEnterRoomActionCallBack、OnUserLeaveRoomActionCallBack等 ...

好的,谢谢
作者: lincy    时间: 2014-11-28 15:24
不好意思,再问一下,用BRAC_EnterRoomEx(roomname)创建房间后,客户端能否得到房间的ID
作者: admin    时间: 2014-11-28 18:17
可以得到,客户端的异步事件:OnAnyChatEnterRoom(roomid, errorcode)可以获取到对应的房间ID;

如果两个客户均调用BRAC_EnterRoomEx(roomname),且其中的roomname相同时,则roomid也是相同的。
作者: lincy    时间: 2014-12-3 09:55
本帖最后由 lincy 于 2014-12-3 10:03 编辑
admin 发表于 2014-11-28 18:17
可以得到,客户端的异步事件:OnAnyChatEnterRoom(roomid, errorcode)可以获取到对应的房间ID;

如果两 ...


好的谢谢。 再请教一下,房间可以锁定吗?服务器端如何的到房间的状态以及房间里的在线用户数?
作者: lincy    时间: 2014-12-3 10:51
还有业务服务器如何知道某个房间的密码以在BRAS_PrepareEnterRoom_CallBack中验证密码的正确性?
作者: admin    时间: 2014-12-3 11:16
是的,可以在BRAS_PrepareEnterRoom_CallBack回调事件中验证密码的正确性,比如:可以连接数据库,在数据库中进行验证等。
作者: lincy    时间: 2014-12-3 13:40
admin 发表于 2014-12-3 11:16
是的,可以在BRAS_PrepareEnterRoom_CallBack回调事件中验证密码的正确性,比如:可以连接数据库,在数据库 ...

服务器本身不保存密码吗?
作者: 廖斌    时间: 2014-12-3 15:38
lincy 发表于 2014-12-3 13:40
服务器本身不保存密码吗?

您好,服务器本身是不保存密码的,客户登录的时候会将密码讯息传到业务服务器,业务服务器可以进行验证。
作者: lincy    时间: 2014-12-4 08:45
廖斌 发表于 2014-12-3 15:38
您好,服务器本身是不保存密码的,客户登录的时候会将密码讯息传到业务服务器,业务服务器可以进行验证。

哦,明白了
作者: lincy    时间: 2014-12-4 09:19
服务器端如何得到某个房间的在线用户数?
作者: 廖斌    时间: 2014-12-4 09:23
lincy 发表于 2014-12-4 09:19
服务器端如何得到某个房间的在线用户数?

您好,客户端进入房间的时候,会触发业务服务器的进入房间回调,在回调中可以统计一个房间中的人数。
作者: lincy    时间: 2014-12-4 09:52
廖斌 发表于 2014-12-4 09:23
您好,客户端进入房间的时候,会触发业务服务器的进入房间回调,在回调中可以统计一个房间中的人数。

好的,谢谢
作者: lincy    时间: 2014-12-4 09:58
廖斌 发表于 2014-12-4 09:23
您好,客户端进入房间的时候,会触发业务服务器的进入房间回调,在回调中可以统计一个房间中的人数。

不好意思,业务服务器的进入房间回调函数参数好像不包含房间人数,具体怎样统计?
作者: 廖斌    时间: 2014-12-4 10:09
lincy 发表于 2014-12-4 09:58
不好意思,业务服务器的进入房间回调函数参数好像不包含房间人数,具体怎样统计?

您好,可以这样来设计。业务服务器为每个房间准备一个list,然后将每次房间回调中用户放入对应的list中,统计list长度即可(仅供参考)。目前业务服务器是没有api接口可以获取一个房间中的用户人数,只能通过回调去统计。
作者: lincy    时间: 2014-12-5 11:15
廖斌 发表于 2014-12-4 10:09
您好,可以这样来设计。业务服务器为每个房间准备一个list,然后将每次房间回调中用户放入对应的list中, ...

好的,谢谢
作者: lincy    时间: 2014-12-5 11:17
再请教一下,可否实现在任意一个用户退出房间后关闭该房间?
作者: 廖斌    时间: 2014-12-5 11:22
lincy 发表于 2014-12-5 11:17
再请教一下,可否实现在任意一个用户退出房间后关闭该房间?

您好,只要房间中没有人了,内核就会释放房间了。
作者: lincy    时间: 2014-12-5 11:24
廖斌 发表于 2014-12-5 11:22
您好,只要房间中没有人了,内核就会释放房间了。

我想编程实现一个人退出后就释放房间
作者: 廖斌    时间: 2014-12-5 11:29
lincy 发表于 2014-12-5 11:24
我想编程实现一个人退出后就释放房间

嗯,如果通话双方都进入房间的话,那很好办,一方离开,会有一个回调onanychatuseratroom通知另外一方,另外一方收到回调离开房间就行。还有几种其他情况要考虑下。

作者: 廖斌    时间: 2014-12-5 11:43
廖斌 发表于 2014-12-5 11:29
嗯,如果通话双方都进入房间的话,那很好办,一方离开,会有一个回调onanychatuseratroom通知另外一方,另 ...

A(客服)先进入房间成功,B(用户)还未进入房间的时候,A就先离开房间,此时就要通知B不要进来。

总之,只要保证房间中没有人的话,房间就会释放的。
作者: lincy    时间: 2014-12-5 13:08
廖斌 发表于 2014-12-5 11:29
嗯,如果通话双方都进入房间的话,那很好办,一方离开,会有一个回调onanychatuseratroom通知另外一方,另 ...

哦,我这个就是这种情况,谢谢
作者: lincy    时间: 2014-12-18 14:28
请问已经登录但没进入房间,双方可以发送和接收文件吗?
作者: 廖斌    时间: 2014-12-18 14:40
lincy 发表于 2014-12-18 14:28
请问已经登录但没进入房间,双方可以发送和接收文件吗?

您好,是可以的。发送和接收文件只要登录成功就可以了,在房间内外都可以发送和接收。
作者: lincy    时间: 2014-12-18 15:12
廖斌 发表于 2014-12-18 14:40
您好,是可以的。发送和接收文件只要登录成功就可以了,在房间内外都可以发送和接收。

好的,谢谢
作者: liyanfeng    时间: 2015-4-14 23:11
admin 发表于 2014-11-28 11:07
是的,还可以用BRAC_EnterRoomEx(roomname)来创建房间,其中roomname为字符串参数,核心服务器会自动分配 ...

您好,评估版的单个房间中的人员数量有没有限制?如有,限制是多少?
作者: admin    时间: 2015-4-15 09:18
10个用户。
作者: 佰锐科技—赖彬    时间: 2015-4-15 09:40
liyanfeng 发表于 2015-4-14 23:11
您好,评估版的单个房间中的人员数量有没有限制?如有,限制是多少?

您好,评估版的单个房间中的人员数量限制为最多10个人。
作者: liyanfeng    时间: 2015-4-18 16:19
佰锐科技—赖彬 发表于 2015-4-15 09:40
您好,评估版的单个房间中的人员数量限制为最多10个人。

您好,请问授权版房间数和单个房间里的人数都没有限制吗?如有,是多少?
作者: admin    时间: 2015-4-18 17:30
您好,授权后房间数量没有限制!




欢迎光临 AnyChat技术支持论坛 (http://bbs.anychat.cn/) Powered by Discuz! X3