通用聊天发动机开发(二)
<!----><!----> <!---->
群组核心接口
joinRoom ——登录 / 创建房间
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
Nickname |
字符串 |
房间中名称 |
Password |
字符串 |
房间进入密码(如需要密码的话) |
相关回调函数: |
ExeonRoomIn (room ) ExeonRoomLeave(room ) ExeonRoomUserIn ( room ,nick ) ExeonRoomUserLeave ( room , nick ) |
|
功能描述: |
创建 / 加入房间,如已指定的 ROOMID 已存在,则参与进入此房间 |
回调函数的 Room 对象,包括以下信息:
oo["subject"] :房间主题,在修改房间主题后才有这个值
oo["roomid"] :房间号
oo["nickname"] :当前用户在房间的名称
oo["role"] :当前用户在房间的角色 : moderator,none , participant , visitor
oo["jid"] :当前用户的 JID
oo["affiliation"] :当前用户与房间的所属关系: owner ,none, admin,member, outcast
configureRoom ——配置房间
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
config |
Object |
配置对象,包含了房间的相关的配置信息 |
相关回调函数: |
ExeonRoomConfig (room ) |
|
功能描述: |
配置指定房间属性 |
config 入参为索引数组,包含了以下属性信息:
config["pubname"] :房间公开名,传入字符串
config["pubdesc"] :房间描述,传入字符串
config["subject"] :是否允许占有者更改房间主题,默认 0 (不允许)
config["maxnum"] :房间上限人数,传入数值,一般为 20 , 30 , 50 等
config["listroom"] :指定房间是否允许在公开的房间列表中展现, 0 :不允许, 1 :允许(默认)
config["persist"] :房间是否是持久的, 0 :不持久(默认), 1 :持久
config["onlymember"] :房间是否只允许会员进入, 0 :否(默认) 1 :是
config["caninvite"] :是否允许房间占有着邀请别人加入这个房间, 0 :否 1 :是(默认)
config["roompwd"] : Object ,包括属性 config["roompwd"] . mustpass 和 config["roompwd"] .pass ,前者表示进入该房间是否需要密码, 1 :需要 0 :不需要(默认),后者表示在需要密码的情况下的密码串
config["roommanager"] : Object ,指定房间管理员,传入 JID 数组
leaveRoom ——离开房间
手动指定离开指定房间,入参: roomid ,一般不需要调用
sendGroupMessage ——组聊
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
Msg |
字符串 |
发送的消息信息 |
相关回调函数: |
ExeonMessage (msg,from) |
|
功能描述: |
向指定房间发送消息 |
sendPrivateMessage ——私聊
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
Msg |
字符串 |
发送的消息信息 |
To |
字符串 |
发往房间的某人(房间 nick ) |
相关回调函数: |
ExeonMessage (msg,from) |
|
功能描述: |
向指定房间的指定人私聊 |
changeSubject ——修改主题
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
Newsubject |
字符串 |
房间主题 |
相关回调函数: |
ExeonChangeSubject(roomid,subject) |
|
功能描述: |
修改房间主题,必须有权限,否则将发生错误 |
renameNickRoom ——修改聊天室昵称
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
Newnick |
字符串 |
新昵称 |
相关回调函数: |
ExeonNickname(room,nickname) |
|
功能描述: |
修改房间昵称,回调中包含新的昵称名 |
roomInviteOne ——邀请
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
Jid |
字符串 |
邀请对象 |
Reason |
字符串 |
邀请理由 |
相关回调函数: |
ExeonRoomInvite(roomid,from,reason) |
|
功能描述: |
发送加入房间邀请给好友(或指定 JID ) |
requestRoomMember ——请求房间成员
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
相关回调函数: |
ExeOnRequestRoomMember(roomid,list ) |
|
功能描述: |
请求房间成员信息 |
ExeOnRequestRoomMember 中的 list 参数为一对象数组,包括如下信息:
js 遍历代码示例:
for(var i=0;i<list.length;i++){
list[i].jid :成员 JID
list[i].role :成员在房间的角色
list[i].nickname :成员在房间的名称 *
list[i].show :成员在房间的状态, normal,dnd,xa,away 等
list[i].affiliation :成员在房间的从属关系
}
kickoff ——踢人
入参 |
类型 |
描述 |
Roomid |
字符串 |
房间 ID |
vnick |
字符串 |
房间昵称 |
相关回调函数: |
|
|
功能描述: |
将指定人从指定房间中踢出( admin,owner ) |
grant ——设置 / 取消管理员
入参 |
类型 |
描述 |
roomid |
字符串 |
房间 ID |
jid |
字符串 |
所要设置的用户 JID |
affication |
字符串 |
用户设置的角色( admin/ 其他字符 ) |
相关回调函数: |
|
|
功能描述: |
设置 / 取消管理员角色 Affication 为 admin 时为设置管理员,其他字符为取消管理员角色 |
requestAffiliation —— 请求同类角色信息
|
我的email: chenliguo79@21cn.com
多交流。
WQ 用XIFF实现的 : www.p2picq.com/wq/index.html
我的email: chenliguo79@21cn.com
多交流。
看了一下,做得挺好的,呵呵
BTW: 与MSN GTalk 都可以通讯,但唯独QQ,用得是其自己独有的协议,且加密了的