Tigase开发笔记3:Tigase 参数配置说明

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

群聊室的属性

我们设计的群已经不是标准的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}

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容