0

我有一个 OpenFire 插件,它使用

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

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

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

4

2 回答 2

2

这完全取决于 Openfire 配置。在 Openfire 管理控制台中,转到服务器 -> 服务器设置 -> 离线消息。有存储、反弹和丢弃的选项。

  • 存储:当用户重新上线时传递消息。
  • 丢弃:丢弃消息。
  • Bounce:丢弃并用返回消息通知发件人。
于 2008-10-29T19:00:43.390 回答
1

另一种方法,如果您只是希望这些消息不脱机而不影响其他消息的传递,则使用 type='headline'。标题不是很明确,但RFC 3921bis 第 5.2.2 节说:

标题——消息提供警报、通知或其他不需要回复的信息(例如,新闻标题、体育更新、近乎实时的市场数据和联合内容)。由于不希望回复消息,因此接收客户端通常会在界面中显示类型为“标题”的消息,以适当地区分该消息与独立消息、聊天消息或群聊消息(例如,通过不向接收者提供回复能力)。接收服务器应该将消息传递给接收者的所有可用资源。

今天的大多数服务器只会默默地将头条新闻投放给离线用户,并在用户在线时将其传递给最高优先级的资源。

于 2008-11-03T08:32:34.293 回答