如何确保客户收到 faye 消息?

how to secure faye message to be received by client?

我正在使用 Faye 向订阅者发送消息。我需要确保订阅者收到消息,但我知道 faye 消息有可能在网络中丢失。例如订阅者不在线,则收不到消息...

我的问题是:如果 Faye 服务器知道订阅者的某种身份,是否有一种方法可以知道消息已被订阅者接收。或者有没有什么协议可以代替Faye同时又能保证消息的安全性?

Faye 不支持持久消息,因此您需要自己动手。一种方法是用 JSON 包装您的消息,并为每条消息使用时间戳。然后,当订阅者连接时,它会向 publisher/producer 发送一条消息,请求在最后一个有效时间戳之后的所有消息。服务器必须保存关键消息并根据请求重新发送。而且,其他消费者将不得不忽略早于上一个有效时间戳的消息。

JSON 包装器看起来像这样:

{
    ts: 1408628582074,
    version: "1.0",
    message:{
        "alert":"producer is now active..."
    }
}

其中 "message" 节点可以是任何对象,包括字符串。

有一个基于 Faye 的开源节点项目可以帮助您解决这个问题here