2008-10-29 47 views
0

我有Openfire的一个插件,创建并提供一条消息,使用邮件传递时,用户离线

XMPPServer.getInstance().getMessageRouter().route(message) 

我想知道的是,如果用户不在线上发生了什么消息的用户。

我的目标是只有当用户在线时才会传递消息,否则失败或被路由到位桶。

回答

2

这完全取决于Openfire配置。在Openfire管理控制台中,转至服务器 - >服务器设置 - >脱机消息。有商店,反弹和下降的选项。

  • 存储:当 用户重新联机时传递消息。
  • 丢弃:丢弃消息。
  • 弹跳:放弃并通知发件人返回消息。
+0

看起来不错。不要以为你知道当发件人是一个插件时会发生什么样的反弹? – Robin 2008-10-29 19:10:37

1

另一种方法是,如果您只是希望这些消息不会在不影响其他消息传递的情况下脱机,则应使用type ='headline'。标题是不是非常良好的规范,但RFC 3921bis Section 5.2.2说:

标题 - 该消息提供警报,通知或其他信息没有回复,预计这(如头条新闻,体育的更新,近实时市场数据和联合内容)。因为预期不会对消息进行回复,所以通常情况下,接收客户端将在界面中呈现类型为“标题”的消息,该消息将消息与独立消息,聊天消息或群聊消息进行适当区分(例如,通过不向接收者提供回复能力)。 接收服务器应该将消息传递给所有收件人的可用资源。

今天大部分的服务器都只是默默地下降头条脱机用户,如果用户在线提供最高优先级的资源。