我有一个 OpenFire 插件,可以使用以下命令创建消息并将其传递给用户

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

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

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

有帮助吗?

解决方案

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

  • 店铺:用户返回在线时传递消息。
  • 降低:只需丢弃该消息即可。
  • 弹跳:丢弃并通过返回消息通知发件人。

其他提示

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

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

今天的大多数服务器都会默默地将头条新闻留给离线用户,并在用户上线时提供最高优先级的资源。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top