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 客户端版本

http://jabber.org/protocol/stats 是否发送统计信息,指向jabber.org发送

startls tls加密

msgoffline 离线消息

vcard-temp 临时的vCard

http://jabber.org/protocol/commands 管理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类型[http://xmpp.org/registrar/formtypes.html]
  • 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:  http://jabber.org/protocol/stats=1:5060 ...  , 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:  http://jabber.org/protocol/commands=1:5060 ...  , 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 =  [email protected]
Loading 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}




你可能感兴趣的:(企业IM,Java开发,XMPP,Tigase)