【发布时间】:2008-10-29 17:17:25
【问题描述】:
我有一个用于 OpenFire 的插件,它使用创建并向用户传递消息
XMPPServer.getInstance().getMessageRouter().route(message)
我想知道的是,如果用户不在线,该消息会发生什么情况。
我的目标是只有在用户在线时才发送消息,否则失败或被路由到比特桶。
【问题讨论】:
我有一个用于 OpenFire 的插件,它使用创建并向用户传递消息
XMPPServer.getInstance().getMessageRouter().route(message)
我想知道的是,如果用户不在线,该消息会发生什么情况。
我的目标是只有在用户在线时才发送消息,否则失败或被路由到比特桶。
【问题讨论】:
这完全取决于 Openfire 配置。在 Openfire 管理控制台中,转到服务器 -> 服务器设置 -> 离线消息。有存储、反弹和丢弃的选项。
【讨论】:
另一种方法,如果您只是希望这些消息不下线而不影响其他消息的传递,则使用 type='headline'。标题不是很明确,但RFC 3921bis Section 5.2.2 说:
headline -- 消息提供提醒、通知或其他不需要回复的信息(例如,新闻头条、体育更新、近乎实时的市场数据和联合内容)。由于不希望回复消息,因此接收客户端通常会在界面中显示“标题”类型的消息,以适当地区分该消息与独立消息、聊天消息或群聊消息(例如,通过不向接收者提供回复能力)。 接收服务器应该将消息传递给接收者的所有可用资源。
当今的大多数服务器只会默默地将标题投放给离线用户,并在用户在线时将其传递给优先级最高的资源。
【讨论】: