sm-plugin说明:
参数 | 说明 | 参考 |
---|---|---|
jabber:iq:register | 注册服务 | |
message-archive-xep-0136 | 消息归档 | ? |
jabber:iq:auth | 简单用户认证 | |
urn:ietf:params:xml:ns:xmpp-sasl | SASL协商 | 参考 |
urn:ietf:params:xml:ns:xmpp-bind | 资源绑定 | |
urn:ietf:params:xml:ns:xmpp-session | session绑定 | |
jabber:iq:roster | 联系人名单管理 | |
presence | xmpp顶级元素,上线广播 | |
jabber:iq:privacy | 隐身协议 | |
jabber:iq:version | 客户端版本 | |
jabber.org/protocol/st… | 是否发送统计信息,指向jabber.org发送 | |
startls | tls加密 | |
msgoffline | 离线消息 | |
vcard-temp | 临时的vCard | |
jabber.org/protocol/co… | 管理virtual domains的特别命令 | 参考 |
jabber:iq:private | 私有数据存储 | |
urn:xmpp:ping | 心跳检测 | |
pep | 发布订阅插件 | 参考 |
domain-filter(basic-filter) | domain拦截器 | 参考 |
amp(basic-filter) | 高级消息处理 | 参考1,参考2 |
zlib(basic-filter) | zlib压缩 | |
message-carbons(basic-filter) | 将stanzas投递到用户指定的资源 | |
disco(basic-filter) | 服务发现 |
标准错误代码:
代码 | 说明 |
---|---|
302 | 重定向,尽管HTTP规定中包含八种不同代码来表示重定向,Jabber只用了其中一个(用来代替所有的重定向错误)。不过Jabber代码302是为以后的功能预留的,目前还没有用到。 |
400 | 坏请求,Jabber代码400用来通知Jabber客户端,一个请求因为其糟糕的语法不能被识别。例如,当一个Jabber客户端发送一个的订阅请求给它自己活发送一条没有包含“to”属性的消息,Jabber代码400就会产生。 |
401 | 未授权的,Jabber代码401用来通知Jabber客户端它们提供的是错误的认证信息,如,在登陆一个Jabber服务器时使用一个错误的密码,或未知的用户名。 |
402 | 所需的费用,Jabber代码402为未来使用进行保留,目前还不用到。 |
403 | 禁止,Jabber代码403被Jabber服务器用来通知Jabber客户端该客户端的请求可以识别,但服务器拒绝执行。目前只用在注册过程中的密码存储失败。 |
404 | 没有找到,Jabber代码404用来表明Jabber服务器找不到任何与JabberID匹配的内容,该JabberID是一个Jabber客户端发送消息的目的地。如,一个用户打算向一个不存在的JabberID发送一条消息。如果接受者的Jabber服务器无法到达,将发送一个来自500级数的错误代码。 |
405 | 不允许的,Jabber代码405用在不允许操作被’from’地址标识的JabberID。例如,它可能产生在,一个非管理员用户试图在服务器上发送一条管理员级别的消息,或者一个用户试图发送一台Jabber服务器的时间或版本,或者发送一个不同的JabberID的vCard。 |
406 | 不被接受的,Jabber代码406用于服务器因为某些理由不接受一个包。例如,这个可能发生在,一个Jabber客户端试图使用jabber:iq:private在服务器上存储信息,但当前的用于存储的名字空间用”jabber:”开头(在Jabber里是一个被存的XML开头)。另一种可能产生406错误的情况是当一个Jabber客户端试图用一个空密码注册到一台Jabber服务器上。 |
407 | 必须注册,Jabber代码407当前不被使用 |
408 | 注册超时,当一个Jabber客户端不能在服务器准备好的时间内发起一个请求时,Jabber服务器生成Jabber代码408。这个代码当前只用于Jabber会话管理器使用的零度认证模式中。 |
409 | 冲突 |
500 | 服务器内部错误,当一台Jabber服务器遇到一种预期外的条件,该条件阻止服务器处理来自Jabber客户端的包,这是将用到Jabber代码500。现在,唯一会引发500错误代码的时间是当一个Jabber客户端试图通过服务器认证,而该认证因为某些原因没有被处理(如无法保存密码)。 |
501 | 不可执行,当服务器不支持Jabber客户端请求的功能,使用Jabber代码501。例如,该代码只当Jabber客户端发送一个认证请求,而该认证请求不包含服务器配置中定义的任何一种认证方式时,服务器发送Jabber代码501。这个代码还被用于,当一个Jabber客户端试图注册一个不允许注册的服务器。 |
502 | 远程服务器错误,当因为无法到达远程服务器导致转发一个包失败时,使用Jabber代码502。该代码发送的特殊例子包括一个远程服务器的连接的失败,无法获取远程服务器的主机名,以及远程服务器错误导致的外部时间过期。 |
503 | 服务无法获得,当一个Jabber客户端请求一个服务,而Jabber服务器通常由于一些临时原因无法提供该服务时,使用Jabber代码503。例如,一个Jabber客户端试图发送一条消息给另一个用户,该用户不在线,但它的服务器不提供离线存储服务,服务器将返回一个503错误代码给发送消息的JabberID。当为vcard-temp和jabber:iq:private名字空间设置信息时,出现通过xdb进行数据存储的写入错误,也使用该代码。 |
504 | 远程服务器超时,Jabber代码504用于下列情况:试图连接一台服务器发生超时,错误的服务器名。 |
510 | 连接失败,Jabber代码510目前还没有使用。 |
扩展code(XMPPErrorCodeExtension枚举),如果大家定义了,请加在此处。 ERROR_TH(4031, “cancel”, “登陆过于频繁或者流量过大”)
MUC相关技术
- XEP-0004: 数据表单,用来交换数据。
CS和SM分离
- tigase中是可行的,但是目前架构没有这样做。这样做会增加网络开销,目前此方案,不是很好,待尝试。
使用到得XEP
XEP-0184: Message Delivery Receipts,该扩展对server没有任何要求,只要client端支持就行。
XEP-0004:表单数据,用来交换数据,form类型[xmpp.org/registrar/f…]
XEP-0198:server端的消息确认,tigase中的配置,它的存在的意义在http://op-co.de/blog/posts/XEP-0198中已经描述的非常详细。
XEP-199
XEP-0114:Jabber组件协议
群聊室的属性
我们设计的群已经不是标准的xmpp群了,下面的属性是对于smack或者标准的xmpp群有意义的。
房间名称|muc#roomconfig_roomname
描述|muc#roomconfig_roomdesc
允许占有者更改主题|muc#roomconfig_changesubject
最大房间占有者人数|muc#roomconfig_maxusers
其 Presence 是 Broadcast 的角色|muc#roomconfig_presencebroadcast
列出目录中的房间|muc#roomconfig_publicroom
房间是持久的|muc#roomconfig_persistentroom
房间是适度的|muc#roomconfig_moderatedroom
房间仅对成员开放|muc#roomconfig_membersonly
允许占有者邀请其他人|muc#roomconfig_allowinvites
需要密码才能进入房间|muc#roomconfig_passwordprotectedroom
密码|muc#roomconfig_roomsecret
能够发现占有者真实 JID 的角色|muc#roomconfig_whois
登录房间对话|muc#roomconfig_enablelogging
仅允许注册的昵称登录|x-muc#roomconfig_reservednick
允许使用者修改昵称|x-muc#roomconfig_canchangenick
允许用户注册房间|x-muc#roomconfig_registration
房间管理员|muc#roomconfig_roomadmins
房间拥有者|muc#roomconfig_roomowners
线上服务器环境配置
tcp调优参考我之前的文章Linux TCP调优
Tigase默认jars包的版本信息(启动的日志文件中可以看到)
Loading component: amp :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.amp.AmpComponent}Loading component: bosh :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.bosh.BoshConnectionManager}Loading component: c2s :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.xmppclient.ClientConnectionManager}Loading component: http :: componentInfo{Title=Tigase HTTP API component: Tigase HTTP API component, Version=1.1.0-b83/d51e1db6, Class=tigase.http.HttpMessageReceiver}Loading component: message-archive :: componentInfo{Title=Tigase Message Archiving Component, Version=1.1.0-b71/c4003eb3, Class=tigase.archive.MessageArchiveComponent}Loading component: monitor :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.monitor.MonitorComponent}Loading component: muc :: componentInfo{Title=Tigase MUC, Version=2.3.0-b389/879168a9, Class=tigase.muc.MUCComponent}Loading component: proxy :: componentInfo{Title=Tigase Socks5 Component, Version=1.1.0-b48/f5c8a08c, Class=tigase.socks5.Socks5ProxyComponent}Loading component: pubsub :: componentInfo{Title=Tigase PubSub, Version=3.1.0-b463/1df4d937, Class=tigase.pubsub.PubSubComponent}Loading component: s2s :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.xmppserver.S2SConnectionManager}Loading plugin: session-close=4:1265 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: session-open=4:1265 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: default-handler=4:1265 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:register=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:auth=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: urn:ietf:params:xml:ns:xmpp-sasl=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: urn:ietf:params:xml:ns:xmpp-bind=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: urn:ietf:params:xml:ns:xmpp-session=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:roster=2:2530 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:privacy=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:version=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber.org/protocol/st… ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: starttls=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: vcard-temp=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber.org/protocol/co… ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: jabber:iq:private=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: urn:xmpp:ping=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: presence=2:2530 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: disco=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: zlib=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: amp=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: message-carbons=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)Loading plugin: message-archive-xep-0136=1:5060 ... , version: 7.0.2-b3821/563fcf81 (2015-05-15/00:41:16)MA LOADED = message-archive@10.5.1.12Loading component: sess-man :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.xmppsession.SessionManager}Loading component: ws2s :: componentInfo{Title=Tigase XMPP Server, Version=7.0.2-b3821/563fcf81 (2015-05-15/00:41:16), Class=tigase.server.websocket.WebSocketClientConnectionManager}