`
kongshanxuelin
  • 浏览: 912761 次
  • 性别: Icon_minigender_1
  • 来自: 宁波
社区版块
存档分类
最新评论

通用聊天引擎开发(二)

阅读更多

<!----><!----> <!---->

群组核心接口

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 —— 请求同类角色信息

 

分享到:
评论
3 楼 xokao 2008-11-14  
以前有过这样的想法,但搜了,觉得有在重复造轮子的感觉。
BTW: 与MSN GTalk 都可以通讯,但唯独QQ,用得是其自己独有的协议,且加密了的
2 楼 kongshanxuelin 2008-11-12  
p2picq 写道

WQ 用XIFF实现的 : www.p2picq.com/wq/index.html

我的email: chenliguo79@21cn.com

多交流。

看了一下,做得挺好的,呵呵
1 楼 p2picq 2008-11-11  
WQ 用XIFF实现的 : www.p2picq.com/wq/index.html

我的email: chenliguo79@21cn.com

多交流。

相关推荐

Global site tag (gtag.js) - Google Analytics