音视频 开发技术 在线好友解决方案
来源:互联网 发布:centos medusa 安装 编辑:程序博客网 时间:2024/04/30 12:14
目前的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.
4. // 获取用户好友ID列表
5. BRAC_API DWORD BRAC_GetUserFriends(LPDWORD lpUserIDArray, DWORD& dwUserNum);
6. // 获取好友在线状态
7. BRAC_API DWORD BRAC_GetFriendStatus(DWORD dwFriendUserId, DWORD& dwStatus);
8. // 获取用户分组ID列表
9. BRAC_API DWORD BRAC_GetUserGroups(LPDWORD lpGroupIDArray, DWORD& dwGroupNum);
10. // 获取分组下面的好友列表
11. BRAC_API DWORD BRAC_GetGroupFriends(DWORD dwGroupId, LPDWORD lpUserIDArray, DWORD& dwUserNum);
12. // 获取用户信息
13. BRAC_API DWORD BRAC_GetUserInfo(DWORD dwUserId, DWORD dwInfoId, TCHAR* lpInfoName, DWORD dwLen);
14. // 获取用户分组名称
15. 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.
5. #define BRAS_USERINFO_CTRLCODE_ADDGROUP 20 ///< 添加用户分组,wParam为分组Id,lpStrValue为分组名称
6. #define BRAS_USERINFO_CTRLCODE_DELGROUP 21 ///< 删除用户分组,wParam为分组Id
7. #define BRAS_USERINFO_CTRLCODE_ADDFRIEND 22 ///< 添加用户好友,wParam为好友Id
8. #define BRAS_USERINFO_CTRLCODE_DELFRIEND 23 ///< 删除用户好友,wParam为好友Id
9. #define BRAS_USERINFO_CTRLCODE_SETGROUPRELATION 24 ///< 设置好友与分组的关联关系,wParam为分组Id,lParam为好友Id,表示好友属于某个分组
10.
11.
12. // 设置用户的详细信息
13. BRAS_API DWORD BRAS_SetUserInfo(DWORD dwUserId, DWORD dwInfoId, LPCTSTR lpInfoValue, DWORD dwFlags=0);
14. // 获取用户的详细信息
15. BRAS_API DWORD BRAS_GetUserInfo(DWORD dwUserId, DWORD dwInfoId, TCHAR* lpInfoValue, DWORD dwSize);
16. // 用户信息控制
17. 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);
复制代码
- 音视频 开发技术 在线好友解决方案
- 音视频解决方案中的即时通讯开发技术
- iOS音视频SDK开发技术解决方案
- 即时通讯技术 音视频解决方案
- 音视频解决方案中的缓冲技术
- 医疗会诊音视频技术解决方案
- 音视频开发平台 视频录制技术
- 音视频技术 视频开发参考资料
- 即时通讯 音视频 开发技术
- 即时通讯音视频解决方案 音视频技术处理
- 在线全部免费技术视频
- IpCamera视频开发解决方案
- IpCamera视频开发解决方案
- flashbuilder4.5开发查询好友qq是否在线
- Android xmpp开发 asmack获取离线在线添加好友消息 及 好友上线下线通知
- Android xmpp开发 asmack获取离线在线添加好友消息 及 好友上线下线通知
- Android xmpp开发 asmack获取离线在线添加好友消息 及 好友上线下线通知
- Android xmpp开发 asmack获取离线在线添加好友讯息 及 好友上线下线通知
- dojo实现加载新版本js库
- Ubuntu安装qBittorrent
- TCP/IP四层模型
- android sdk下载不了,解决方案
- [SQL-码农]SQL compute by 的使用
- 音视频 开发技术 在线好友解决方案
- 索引访问中的access和filter
- Lua模式匹配
- NetworkX学习笔记-3-Python中输出Gephi文件格式的方法
- linux read 的用法
- 最大公约数和最小公倍数
- Windows Azure 存储管理器 (2014)
- 依靠dba_hist_tbspc_space_usage视图 获得表空间的每日增长量
- 汽车广告屡屡突破底线 关注有了美誉丢了