设为首页收藏本站

AnyChat技术支持论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 8735|回复: 9

AnyChatQueue示例工程如何自动进入营业厅以及队列?

[复制链接]

249

主题

2967

帖子

9070

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9070
发表于 2015-7-23 10:22:28 | 显示全部楼层 |阅读模式
AnyChat新版本增加了业务排队功能(参考:AnyChat提供业务排队整体解决方案),目前是登录系统后,系统首先显示营业厅列表,由用户选择后进入营业厅,队列也是一样,进入营业厅之后显示所有队列列表,然后由用户选择后进入队列排队。那如何让系统自动进入指定的营业厅,以及如何让用户自动进入指定的队列呢?

可以通过响应相关的异步事件来实现上面的需求,我们可以先分析AnyChatQueue的相关工作流程:
1、客户端登录服务器成功之后,会触发客户端的登录成功回调(OnAnyChatLoginSystem)事件,通常会在该事件中向服务器发送营业厅数据同步请求:
  1. //向服务器发送数据同步请求指令
  2. BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_AREA, ANYCHAT_INVALID_OBJECT_ID, ANYCHAT_OBJECT_CTRL_SYNCDATA, mSelfUserId, 0, 0, 0, "");
复制代码
2、服务器收到客户端的数据同步请求之后,便向客户端同步营业厅数据,同步的过程中会触发客户端的异步事件(ANYCHAT_OBJECT_EVENT_UPDATE)同步完成之后,会触发客户端的异步事件(ANYCHAT_OBJECT_EVENT_SYNCDATAFINISH),此时可以通过API:BRAC_ObjectGetIdList来枚举所有营业厅的ID列表,可以根据营业厅ID通过API:BRAC_ObjectGetValue(ANYCHAT_OBJECT_INFO_NAME)来查询营业厅的名称,所以如果需要自动进入指定营业厅,则可以在数据同步完成的异步事件(ANYCHAT_OBJECT_EVENT_SYNCDATAFINISH)中调用进入营业厅的代码,如:
  1. // 进入营业厅
  2. BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_AREA, dwAreaId, ANYCHAT_AREA_CTRL_USERENTER, 0, 0, 0, 0, "");
复制代码
3、服务器收到客户端进入营业厅的请求后,会向客户端同步营业厅的队列数据,同步的过程中会触发客户端的异步事件(ANYCHAT_OBJECT_EVENT_UPDATE)同步完成之后,会触发客户端的异步事件(ANYCHAT_AREA_EVENT_ENTERRESULT),此时可以通过API:BRAC_ObjectGetIdList来枚举当前营业厅中所有业务队列的ID列表,可以根据队列ID通过API:BRAC_ObjectGetValue(ANYCHAT_OBJECT_INFO_NAME)来查询业务队列的名称,所以如果需要自动进入指定的队列,则可以在进入营业厅结果的异步事件(ANYCHAT_AREA_EVENT_ENTERRESULT)中调用进入队列的代码,如:
  1. // 进入队列
  2. BRAC_ObjectControl(ANYCHAT_OBJECT_TYPE_QUEUE, dwQueueId, ANYCHAT_QUEUE_CTRL_USERENTER, 0, 0, 0, 0, "");
复制代码
4、服务器收到客户端进入队列的请求之后,会向客户端同步队列状态信息,同步完成后会触发客户端的异步事件(ANYCHAT_QUEUE_EVENT_ENTERRESULT),当队列状态变化时会触发客户端的异步事件(ANYCHAT_QUEUE_EVENT_STATUSCHANGE),客户端通过处理上述两个事件便可以动态刷新队列的状态。
回复

使用道具 举报

7

主题

26

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2015-7-24 15:31:24 | 显示全部楼层
这些都在哪一个接口里的事件啊。
回复 支持 反对

使用道具 举报

7

主题

26

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2015-7-24 15:32:36 | 显示全部楼层
事件中各参数又是什么意思??
回复 支持 反对

使用道具 举报

0

主题

38

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
发表于 2015-7-24 15:58:56 | 显示全部楼层
sagittar_zhang 发表于 2015-7-24 15:32
事件中各参数又是什么意思??

您好,可以参考开发手册,在sdk的doc目录下。
回复 支持 反对

使用道具 举报

7

主题

26

帖子

95

积分

注册会员

Rank: 2

积分
95
发表于 2015-7-24 16:01:06 | 显示全部楼层
AnyChatCoreSDK.ObjectGetIdList(); 请求服务器列表的时候,需要什么参数,AnyChatDefine哪一个?文档和帖子说的太模糊了哦。。。。
回复 支持 反对

使用道具 举报

249

主题

2967

帖子

9070

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9070
 楼主| 发表于 2015-7-24 16:13:04 | 显示全部楼层
您好,您是在什么平台下开发呢?

请重新下载SDK包,在doc目录下,有一个《开发流程指南》的文档,有一个章节是专门介绍“业务排队”的。

另外还可以参考AnyChatQueue的示例代码,位于SDK包的src目录下。
回复 支持 反对

使用道具 举报

0

主题

38

帖子

290

积分

中级会员

Rank: 3Rank: 3

积分
290
发表于 2015-7-24 16:17:30 | 显示全部楼层
sagittar_zhang 发表于 2015-7-24 16:01
AnyChatCoreSDK.ObjectGetIdList(); 请求服务器列表的时候,需要什么参数,AnyChatDefine哪一个?文档和帖 ...

您好,BRAC_ObjectGetIdList(dwObjectType),参数:dwObjectType 业务对象常量;返回值是ObjectId数组。
回复 支持 反对

使用道具 举报

15

主题

70

帖子

275

积分

中级会员

Rank: 3Rank: 3

积分
275
发表于 2015-9-20 13:33:25 | 显示全部楼层
请问  队列能否在服务端主动控制排序   场景: 客户登录进入队列后,在排队,因为某些原因断网或者退出客户端(core server 要将他从队列数组中踢出么?),一段时间后,客户端又登录进来 能否保持该客户端处于原来队列位置上?
回复 支持 反对

使用道具 举报

发表于 2015-9-20 21:02:23 | 显示全部楼层
ehomeud 发表于 2015-9-20 13:33
请问  队列能否在服务端主动控制排序   场景: 客户登录进入队列后,在排队,因为某些原因断网或者退出客户 ...

你好,这种排队模式时暂时还不支持;这个建议非常好,我们将回反馈研发部进行评估和升级,其新功能和升级信息请关注团队日志模块。
回复 支持 反对

使用道具 举报

8

主题

40

帖子

120

积分

注册会员

Rank: 2

积分
120
发表于 2016-12-1 16:46:56 | 显示全部楼层
你好,现在有一种这样的需求   一个客户能否在多个营业厅队列排队,  或者一个坐席能否同时服务多个营业厅的队列
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 16:29 , Processed in 0.169780 second(s), 26 queries .

Powered by Discuz! X3

© 2001-2013 Comsenz Inc.

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