AnyChat技术支持论坛

标题: web版如何为用户附加一些自定义状态值? [打印本页]

作者: zq_yeah    时间: 2014-4-12 23:02
标题: web版如何为用户附加一些自定义状态值?
你好,由于开发需要,希望能给已进入房间的用户添加一些自定义的状态,有相关接口吗?BRAC_UserInfoControl接口不太会用,还希望能详细指点一下。谢谢!
作者: admin    时间: 2014-4-12 23:38
您好,可以附加自定义的属性,请参考AnyChatCallCenter工程的源代码,位于SDK包的src目录下!
作者: zq_yeah    时间: 2014-4-17 13:30
本帖最后由 zq_yeah 于 2014-4-17 14:15 编辑

找了半天也没有找到,能粘贴一段代码例子吗?js脚本以及C#业务层的。AnyChatCallCenter中没有找到调用BRAC_UserInfoControl的代码部分啊。
作者: 廖斌    时间: 2014-4-17 14:47
zq_yeah 发表于 2014-4-17 13:30
找了半天也没有找到,能粘贴一段代码例子吗?js脚本以及C#业务层的。AnyChatCallCenter中没有找到调用BRAC_ ...

您好,想要为用户添加自定义属于,需要通过业务服务器来做,添加成功之后,客户端就可以通过BRAC_GetUserInfo来获取。
java业务服务器添加用户属性部分
  1.         // 添加用户分组
  2.                 int iGroupId = 1;
  3.                 AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_ADDGROUP, iGroupId, 0, "我的好友");        // 用户名+密码方式登录的用户
  4.                 iGroupId = 2;
  5.                 AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_ADDGROUP, iGroupId, 0, "在线游客");        // 密码为空的用户
  6.                
  7.                 // 将当前所有在线用户添加为自己的好友
  8.                 for(Integer otheruserid : onlineusers)
  9.                         AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_ADDFRIEND, otheruserid, 0, "");
  10.                
  11.                 // 设置好友与分组的关系(即好友属于哪一个分组)
  12.                 iGroupId = 1;
  13.                 for(Integer otheruserid : onlineusers)
  14.                 {
  15.                         iGroupId = (otheruserid > 0) ? 1 : 2;                // 游客密码为空,userid由核心服务器分配,为负数
  16.                         AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_SETGROUPRELATION, iGroupId, otheruserid, "");
  17.                 }
  18.                
  19.                 // 设置当前用户信息(用户资料,客户端可以通过API:BRAC_GetUserInfo来获取这些信息)
  20.                 int iInfoId = 1;        // InfoId由业务层自己定义
  21.                 AnyChatServerSDK.SetUserInfo(dwUserId, iInfoId, szUserName, 0);
  22.                 iInfoId = 2;
  23.                 AnyChatServerSDK.SetUserInfo(dwUserId, iInfoId, szIpAddr, 0);
  24.                 iInfoId = 3;
  25.                 AnyChatServerSDK.SetUserInfo(dwUserId, iInfoId, "我的签名", 0);
  26.                 iInfoId = 4;
  27.                 AnyChatServerSDK.SetUserInfo(dwUserId, iInfoId, String.valueOf(dwUserId%10 + 1), 0);                // 随机分配一个图像ID
  28.                
  29.                 // 将本地用户添加为其它用户的好友列表中
  30.                 for(Integer otheruserid : onlineusers)
  31.                 {
  32.                         // 添加好友
  33.                         AnyChatServerSDK.UserInfoControl(otheruserid, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_ADDFRIEND, dwUserId, 0, "");
  34.                         // 关联好友分组
  35.                         iGroupId = (dwUserId > 0) ? 1 : 2;
  36.                         AnyChatServerSDK.UserInfoControl(otheruserid, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_SETGROUPRELATION, iGroupId, dwUserId, "");
  37.                         // 下发同步指令,将新设置的好友同步给客户端
  38.                         AnyChatServerSDK.UserInfoControl(otheruserid, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_SYNCDATA,  0, 0, "");
  39.                 }
  40.                
  41.                 // 下发同步指令,将前面设置的资料同步给当前客户端
  42.                 AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_SYNCDATA,  0, 0, "");
  43.                
  44.                 // 将本地用户加入在线用户列表
  45.                 onlineusers.add(dwUserId);
复制代码
js客户端获取用户属性
  1.   var USERINFO_NAME=1;                                                        // 用户昵称信息
  2. var USERINFO_IP=2;                                                                // 用户IP地址信息
  3. var UserName = BRAC_GetUserInfo(userid,USERINFO_NAME); // 用户姓名
  4.         var UserIp=BRAC_GetUserInfo(userid,USERINFO_IP); // 用户IP地址;
复制代码





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