zq_yeah 发表于 2014-4-12 23:02:41

web版如何为用户附加一些自定义状态值?

你好,由于开发需要,希望能给已进入房间的用户添加一些自定义的状态,有相关接口吗?BRAC_UserInfoControl接口不太会用,还希望能详细指点一下。谢谢!

admin 发表于 2014-4-12 23:38:17

您好,可以附加自定义的属性,请参考AnyChatCallCenter工程的源代码,位于SDK包的src目录下!

zq_yeah 发表于 2014-4-17 13:30:24

本帖最后由 zq_yeah 于 2014-4-17 14:15 编辑

找了半天也没有找到,能粘贴一段代码例子吗?js脚本以及C#业务层的。AnyChatCallCenter中没有找到调用BRAC_UserInfoControl的代码部分啊。

廖斌 发表于 2014-4-17 14:47:01

zq_yeah 发表于 2014-4-17 13:30
找了半天也没有找到,能粘贴一段代码例子吗?js脚本以及C#业务层的。AnyChatCallCenter中没有找到调用BRAC_ ...
您好,想要为用户添加自定义属于,需要通过业务服务器来做,添加成功之后,客户端就可以通过BRAC_GetUserInfo来获取。
java业务服务器添加用户属性部分      // 添加用户分组
                int iGroupId = 1;
                AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_ADDGROUP, iGroupId, 0, "我的好友");      // 用户名+密码方式登录的用户
                iGroupId = 2;
                AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_ADDGROUP, iGroupId, 0, "在线游客");      // 密码为空的用户
               
                // 将当前所有在线用户添加为自己的好友
                for(Integer otheruserid : onlineusers)
                        AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_ADDFRIEND, otheruserid, 0, "");
               
                // 设置好友与分组的关系(即好友属于哪一个分组)
                iGroupId = 1;
                for(Integer otheruserid : onlineusers)
                {
                        iGroupId = (otheruserid > 0) ? 1 : 2;                // 游客密码为空,userid由核心服务器分配,为负数
                        AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_SETGROUPRELATION, iGroupId, otheruserid, "");
                }
               
                // 设置当前用户信息(用户资料,客户端可以通过API:BRAC_GetUserInfo来获取这些信息)
                int iInfoId = 1;      // InfoId由业务层自己定义
                AnyChatServerSDK.SetUserInfo(dwUserId, iInfoId, szUserName, 0);
                iInfoId = 2;
                AnyChatServerSDK.SetUserInfo(dwUserId, iInfoId, szIpAddr, 0);
                iInfoId = 3;
                AnyChatServerSDK.SetUserInfo(dwUserId, iInfoId, "我的签名", 0);
                iInfoId = 4;
                AnyChatServerSDK.SetUserInfo(dwUserId, iInfoId, String.valueOf(dwUserId%10 + 1), 0);                // 随机分配一个图像ID
               
                // 将本地用户添加为其它用户的好友列表中
                for(Integer otheruserid : onlineusers)
                {
                        // 添加好友
                        AnyChatServerSDK.UserInfoControl(otheruserid, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_ADDFRIEND, dwUserId, 0, "");
                        // 关联好友分组
                        iGroupId = (dwUserId > 0) ? 1 : 2;
                        AnyChatServerSDK.UserInfoControl(otheruserid, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_SETGROUPRELATION, iGroupId, dwUserId, "");
                        // 下发同步指令,将新设置的好友同步给客户端
                        AnyChatServerSDK.UserInfoControl(otheruserid, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_SYNCDATA,0, 0, "");
                }
               
                // 下发同步指令,将前面设置的资料同步给当前客户端
                AnyChatServerSDK.UserInfoControl(dwUserId, AnyChatServerSDK.BRAS_USERINFO_CTRLCODE_SYNCDATA,0, 0, "");
               
                // 将本地用户加入在线用户列表
                onlineusers.add(dwUserId);js客户端获取用户属性var USERINFO_NAME=1;                                                      // 用户昵称信息
var USERINFO_IP=2;                                                                // 用户IP地址信息
var UserName = BRAC_GetUserInfo(userid,USERINFO_NAME); // 用户姓名
      var UserIp=BRAC_GetUserInfo(userid,USERINFO_IP); // 用户IP地址;
页: [1]
查看完整版本: web版如何为用户附加一些自定义状态值?