视频对讲SDK 大厅好友解决方案

目前的anychat只提供了房间内用户列表、用户进出房间的业务逻辑,新版本将增强对上层业务逻辑的支持,提供完整的大厅好友解决方案。

大厅好友解决方案包括:
1、业务服务器可以设置用户的好友列表,客户端可以获得好友列表,不需要进入房间;
2、客户端可以获得好友上线、下线的状态通知;
3、业务服务器可以自定义设置用户的任意属性(如名称、签名、性别、备注等)并能同步到客户端,客户端可以获取业务服务器自定义的用户属性;


客户端新增API接口:

  1. #define WM_GV_USERINFOUPDATE   WM_GV + 16                ///< 用户信息更新通知,wParam(INT)表示用户ID号,lParam(INT)表示更新类别
  2. #define WM_GV_FRIENDSTATUS     WM_GV + 17                ///< 好友在线状态变化,wParam(INT)表示好友用户ID号,lParam(INT)表示用户的当前活动状态:0 离线, 1 上线
  3. // 获取用户好友ID列表
  4. BRAC_API DWORD BRAC_GetUserFriends(LPDWORD lpUserIDArray, DWORD& dwUserNum);
  5. // 获取好友在线状态
  6. BRAC_API DWORD BRAC_GetFriendStatus(DWORD dwFriendUserId, DWORD& dwStatus);
  7. // 获取用户分组ID列表
  8. BRAC_API DWORD BRAC_GetUserGroups(LPDWORD lpGroupIDArray, DWORD& dwGroupNum);
  9. // 获取分组下面的好友列表
  10. BRAC_API DWORD BRAC_GetGroupFriends(DWORD dwGroupId, LPDWORD lpUserIDArray, DWORD& dwUserNum);
  11. // 获取用户信息
  12. BRAC_API DWORD BRAC_GetUserInfo(DWORD dwUserId, DWORD dwInfoId, TCHAR* lpInfoName, DWORD dwLen);
  13. // 获取用户分组名称
  14. BRAC_API DWORD BRAC_GetGroupName(DWORD dwGroupId, TCHAR* lpGroupName, DWORD dwLen);

复制代码

服务端新增API接口:

  1. // 用户信息控制类型定义(API:BRAS_UserInfoControl 传入参数、OnUserInfoControl回调参数)
  2. #define BRAS_USERINFO_CTRLCODE_KICKOUT          1         ///< 将指定用户从系统中踢掉
  3. #define BRAS_USERINFO_CTRLCODE_SYNCDATA         2         ///< 将指定用户的数据同步给客户端
  4. #define BRAS_USERINFO_CTRLCODE_ADDGROUP         20        ///< 添加用户分组,wParam为分组Id,lpStrValue为分组名称
  5. #define BRAS_USERINFO_CTRLCODE_DELGROUP         21        ///< 删除用户分组,wParam为分组Id
  6. #define BRAS_USERINFO_CTRLCODE_ADDFRIEND        22        ///< 添加用户好友,wParam为好友Id
  7. #define BRAS_USERINFO_CTRLCODE_DELFRIEND        23        ///< 删除用户好友,wParam为好友Id
  8. #define BRAS_USERINFO_CTRLCODE_SETGROUPRELATION 24        ///< 设置好友与分组的关联关系,wParam为分组Id,lParam为好友Id,表示好友属于某个分组
  9. // 设置用户的详细信息
  10. BRAS_API DWORD BRAS_SetUserInfo(DWORD dwUserId, DWORD dwInfoId, LPCTSTR lpInfoValue, DWORD dwFlags=0);
  11. // 获取用户的详细信息
  12. BRAS_API DWORD BRAS_GetUserInfo(DWORD dwUserId, DWORD dwInfoId, TCHAR* lpInfoValue, DWORD dwSize);
  13. // 用户信息控制
  14. BRAS_API DWORD BRAS_UserInfoControl(DWORD dwUserId, DWORD dwCtrlCode, DWORD wParam=0, DWORD lParam=0, LPCTSTR lpStrValue=NULL);

复制代码

服务器端业务逻辑处理流程


在用户登录成功事件中设置用户的好友列表、分组列表、用户属性,并发送数据同步指令:

  1. // 用户登录成功回调函数定义
  2. typedef void (CALLBACK* BRAS_OnUserLoginAction_CallBack)(DWORD dwUserId, LPCTSTR szUserName, DWORD dwLevel, LPCTSTR szIpAddr, LPVOID lpUserValue);

复制代码

一、添加用户分组

  1. DWORD dwGroupId = 1;
  2. BRAS_UserInfoControl(dwUserId, BRAS_USERINFO_CTRLCODE_ADDGROUP,  dwGroupId, 0, "我的好友");
  3. dwGroupId = 2;
  4. BRAS_UserInfoControl(dwUserId, BRAS_USERINFO_CTRLCODE_ADDGROUP,  dwGroupId, 0, "公司同事");

复制代码

二、添加用户好友

  1. DWORD dwFriendUserId = 10010;
  2. BRAS_UserInfoControl(dwUserId, BRAS_USERINFO_CTRLCODE_ADDFRIEND,  dwFriendUserId);
  3. dwFriendUserId = 10011;
  4. BRAS_UserInfoControl(dwUserId, BRAS_USERINFO_CTRLCODE_ADDFRIEND,  dwFriendUserId );

复制代码

三、设置好友与分组的关系(即好友属于哪一个分组)

  1. DWORD dwGroupId = 1;
  2. DWORD dwFriendUserId = 10010;
  3. BRAS_UserInfoControl(dwUserId, BRAS_USERINFO_CTRLCODE_SETGROUPRELATION,  dwGroupId, dwFriendUserId);
  4. dwGroupId = 2;
  5. dwFriendUserId = 10011;
  6. BRAS_UserInfoControl(dwUserId, BRAS_USERINFO_CTRLCODE_SETGROUPRELATION,  dwGroupId, dwFriendUserId);

复制代码

四、设置用户信息(用户资料)

  1. BRAS_SetUserInfo(dwUserId, 1, "我的签名");
  2. BRAS_SetUserInfo(dwUserId, 2, "020-85276986");
  3. ……

复制代码

五、将前面设置的资料同步给客户端

  1. BRAS_UserInfoControl(dwUserId, BRAS_USERINFO_CTRLCODE_SYNCDATA,  0, 0);

复制代码

视频对讲SDK 大厅好友解决方案

时间: 2024-10-09 17:46:00

视频对讲SDK 大厅好友解决方案的相关文章

视频对讲技术 大厅好友解决方案

目前的anychat只提供了房间内用户列表.用户进出房间的业务逻辑,新版本将增强对上层业务逻辑的支持,提供完整的大厅好友解决方案. 大厅好友解决方案包括:1.业务服务器可以设置用户的好友列表,客户端可以获得好友列表,不需要进入房间:2.客户端可以获得好友上线.下线的状态通知:3.业务服务器可以自定义设置用户的任意属性(如名称.签名.性别.备注等)并能同步到客户端,客户端可以获取业务服务器自定义的用户属性: 客户端新增API接口: 1. #define WM_GV_USERINFOUPDATE  

高清实时视频对讲SDK源码

AnyChat SDKAnychat(AnyChat音视频互动开发平台)是一套跨平台的(*)即时通讯解决方案,基于先进的H.264视频编码标准.AAC音频编码标准与P2P技术,支持高清视频,整合了佰锐科技在音视频编码.多媒体通讯领域领先的开发技术和丰富的产品经验而设计的高质量.宽适应性.分布式.模块化的网络音视频互动平台. AnyChat音视频互动开发平台(SDK)包含了音视频处理模块(采集.编解码).流媒体管理模块(丢包重传.抖动平滑.动态缓冲).流媒体播放模块(多路混音.音视频同步)以及P2

音视频 对讲技术实现楼宇智能化

楼宇智能化系统一般包括以下系统:综合布线系统.计算机网络系统.电话系统.有线电视及卫星电视系统.安防监控系统.一卡通系统.广播告示系统.楼宇自控系统.酒店管理系统.物业管理系统.智能楼宇管理系统(集控平台)及数据中心机房建设等. 1.综合布线系统 结构化综合布线系统是整幢大楼的"神经系统",是网络.通讯等系统的基础.大楼结构化布线采用光纤作为主干(电话主干使用大对数线缆).超五类或六类双绞线到房间,提供网络接入. 2.网络系统 在综合布线基础上构建网络系统,提供系统桌面100/1000

3G手机视频对讲开发包

一.概述 针对3G网络研发的"手机视频对讲开发包",使人们在任何能够使用手机的地方都可以随时随地进行视频对讲.视频会议.应急视频指挥等,突破了传统固网的限制,是3G业务的革命性产品.该开发包已经通过了稳定性测试,是目前最完善的适合于大规模商用的3G视频应用开发包,填补了国内空白. 手机视频开发包可为3G用户提供视频监控和告警信息.远程采集.传输.存储.处理与传播等方面的无线网络视频服务,是一种有效的安防及管理工具:手机会议平台是为用户提供手机视频会议的定制.配置.使用的手机视频会议系统

iOS视频编辑SDK

IOS视频编辑SDK接入说明 一.名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等. 宽高比:视频分辨率的宽高比,常见的有16:9,4:3,1:1.锐动视频编辑SDK对各宽高比的视频都支持编辑,导出的默认分辨率是640x360,宽高比是16:9. 帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数. 码率: 数据传输时单位时间传送的

RDVECore来自锐动的无UI,高度抽象化API的视频编辑SDK

1 编写目的 预期读者: 有视频编辑开发经验或者无经验的,打算或者正在使用"锐动IOS版RDVECore"的相关工程师. iOS软件工程师. 产品经理. QA 2 名词解释 分辨率:用于计算机视频处理的图像,以水平和垂直方向上所能显示的像素数来表示分辨率.常见视频分辨率的有1080P即1920x1080,720P即1080x720,640x480等. 帧率:每秒的帧数(fps)或者说帧率表示图形处理器处理场时每秒钟能够更新的次数. 码率: 数据传输时单位时间传送的数据位数,一般我们用的

音视频服务器双机热备解决方案

AnyChat平台提供了服务器双机热备解决方案,可以满足对系统有要求较高的客户需求,如政府.电信运营商以及部队等. 一.基本原理 1.AnyChat服务器有两种工作模式,分别为:主服务器模式(Master Server).从服务器模式(Slave Server). 2.从服务器启动之后,需要与主服务器建立通信连接,等待主服务器的激活,从服务器被激活之前,不能对外提供服务. 3.当从服务器被激活,且主服务器宕机之后,从服务器将会立即开始服务,接受客户端连接.从服务器被激活之后,可以连续工作30天,

锐动视频编辑SDK接入说明

锐动视频编辑SDK集视频拍摄和视频剪辑功能于一体,同时包含视频配音配乐.字幕特效.滤镜.转场等各种功能,全方位满足开发者的需求,并可以快速植入到APP中.编辑预览时支持智能硬件解码,选择视频时不需要转码,减少用户等待时间. 一.运行环境 Android 4.1(api 16)以上: 处理器:双核 1GHz以上CPU(目前只支持ARM CPU, X86.MIPS暂不支持):推荐四核1.2GHz以上CPU 内存:1 GB以上: 二.注册申请AppKey和APPSECRET 1. 登录http://w

Eclipse/Android Studio下载SDK过慢解决方案!

启动 Android SDK Manager ,打开主界面,依次选择『Tools』.『Options...』,弹出『Android SDK Manager - Settings』窗口: 在『Android SDK Manager - Settings』窗口中,在『HTTP Proxy Server」和「HTTP Proxy Port』输入框内填入下面镜像服务器地址(不包含http://,如下图)和端口,并且选中『Force https://... sources to be fetched us