IM中好友管理解决方案

客户端处理接口:

  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);

复制代码

时间: 2024-08-12 01:18:50

IM中好友管理解决方案的相关文章

CDIF灵长科技 API 管理解决方案技术白皮书

灵长科技 API 管理解决方案的核心技术是具备中美知识产权保护的,名为通用设备互联框架(CDIF:common device interconnect framework)的软件框架,目前有部分开源实现存放在:https://github.com/out4b/cdif(注:开源部分遵守相关开源代码许可协议).CDIF 是世界上第一种基于 REST 和 JSON 的 SOA软件框架,提供了与基于XML 的 WSDL 语言和 SOAP 协议同等抽象能力.但简洁得多的基于JSON 的实现,也非常适合用

实全软件产品自动升级管理解决方案

实全软件产品自动升级管理解决方案 目 录 1.    描述... 1 2.    产品管理后台系统... 1 2.1.     产品发布... 1 2.2.     产品下载... 2 2.3.     下载日志... 3 2.4.     异常日志... 3 3.    产品Web Service服务接口... 3 3.1.     接口说明... 4 4.    产品升级更新程序... 4 4.1.     产品升级自动更新工具... 5 4.2.     产品版本信息... 5 5.   

增值税发票管理解决方案

Tax PLUS VAT增值税发票管理解决方案在短时间内解决了税控机开票问题,同时汉特技术人员对待工作严谨高效的态度也给我们留下了深刻的印象,这是一次愉快的合作. Tax PLUS VAT增值税发票管理解决方案专门针对中国的航天金税工程,为各企业的增值税发票管理设计.Tax PLUS VAT增值税发票管理解决方案有Standard 和Enterprise 两个版本. Standard 版本专为销项税发票开票和管理设计,拥有比航天金税接口更强大的功能.Enterprise 版本更能够全面覆盖从票据

数据中心用电管理解决方案

引言 数据中心是一个聚集了大量服务器.存储设备.网络设备及配套UPS.精密空调等设备的IT设备场所,是实现数据信息的集中处理.存储.传输.交换和集中管理等业务的服务平台.从物理层次看,数据中心主要由IT设备.配电系统和空调系统三部分组成.IT设备用于数据处理(服务器).数据存储(存储设备)以及通讯(网络设备),是实现数据中心功能的核心部分:配电系统和空调系统是实现IT设备系统的正常运行的保障.配电系统用于提供稳定的供电电源,实现直流一交流转换,并确保为IT设备提供可靠.高质量的电源:供电电源质量

简述OC中内存管理机制。

1        简述OC中内存管理机制.与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwrite,readonly,assign,retain,copy,nonatomic .atomic.strong.weak属性的作用? OC使用了一种叫做引用计数的机制来管理对象,如果对一个对象使用了alloc.[Mutable]copy,retain,那么你必须使用相应的realease或者aut

发票管理解决方案

TaxPLUS发票管理解决方案是基于Hitpoint专属PLUS平台,基于本土最佳实践建立一套有效的发票管理系统,通过创新的模式将所有发票相关事务纳入其中,聚焦发票自动化.流程化.协同化管理,最终全面提升企业税务管理信息化水平和管理能力. Hitpoint TaxPLUS采用B/S架构,适用于财务共享中心集中管控开票.复杂多变开票需求的企业,支持多公司.多门店.多部门.多岗位协同工作. Tax PLUS发票管理解决方案特点 在中国,对发票的流程管理重点在发票的开具,了解.记录.追踪发票的开具流程

Git 在小团队中的管理流程(转)

目标读者:了解 Git 的基本概念,能够使用 Git 进行基本的本地和远程操作. 有关 Git 的基础知识可以参见 知乎回答-怎样使用 GitHub?,天猪(刘勇)给出了一些很好的学习资料. 本文介绍了小团队中 Git 管理的基本使用流程.小团队的代码管理可以采用这样一种方式:项目存在一个中心远程仓库,作为团队成员进行代码交流的主要场所.同时可以存在一些成员远程仓库,用于局限在团队中部分成员间的代码交流.并将成员分成以下几类不同的角色:负责人.普通组员.预发布责任人 和 版本修复责任人.下面的章

Hitpoint发票管理解决方案助转型成功

近年来,"营改增"后给企业带来的众多挑战,税务稽查又十分严格,企业能Hold住吗?日益复杂的客户要求,增值税红票和废票更复杂.更严格的管理,因合同计价方式及现行系统带来更加常见的尾差问题.而且当面对集团客户时,转型期多税种.多流程的混合更加难以处理.此外,增值税发票还可抵扣,增加了财务人员的发票扫描认证工作.试点企业面临如此多的挑战,怎样才能顺利实现"营改增"的华丽转型呢?  Hitpoint Tax PLUS-增值税发票管理解决方案专门解决此次增值税扩围交通运输行

如何理解IPD+CMMI+Scrum一体化研发管理解决方案之CMMI篇

如何快速响应市场的变化,如何推出更有竞争力的产品,如何在竞争中脱颖而出,是国内研发企业普遍面临的核心问题,为了解决这些问题,越来越多的企业开始重视创新与研发管理,加强研发过程的规范化,集成产品开发(IPD).集成能力成熟度模型(CMMI).敏捷开发(Scrum)是当前企业产品研发管理的最热门的3个体系,但是很多朋友并不真正了解这3套管理体系的适用范围和内涵,本文描述了它们之间的区别以及如何在企业研发管理过程中合理加以应用才能达到最优化的结果,使企业在市场竞争中保持不败之地并能脱颖而出. 上篇请参