【问题标题】:How to assure reliable message delivery of websockets?如何保证 websockets 的可靠消息传递?
【发布时间】:2015-03-18 11:33:13
【问题描述】:

我正在开发一个简单的服务器,其主要任务是像典型的Push Notification Server 一样向用户推送通知。我使用java websockets 通过 websocket 会话向用户推送通知。在开发相同的产品时,我列出了一些要求,其中可靠的消息传递是要求之一。

我正在向特定用户推送通知,如下所示,

session.getBasicRemote().sendObject(notification);

但上面的方法返回void,这就是为什么我无法断定通知是否传递到另一端。 其中一个选项是,预期用户将向我的服务器发送反馈以获取相同的通知,我会将相同的通知标记为已成功发送。但这可能会导致网络流量增加。

在通过websocket session

发送通知时,是否有任何标准方法可以确保成功传递通知

【问题讨论】:

    标签: java websocket


    【解决方案1】:

    websockets 规范非常低级,不提供发送消息的确认。您必须自己将其实现为应用程序级协议,或者在 websockets 之上使用现有协议。

    Stomp 是一种流行的协议,它为消费的消息定义了一个“ACK”回复:Stomp specification

    【讨论】:

    • 虽然没有提供成功返回的确认,但传递失败是否意味着套接字连接的错误首先会使 TCP 客户端连接无效?换句话说,如果没有来自低级 TCP 套接字连接的任何其他错误,是否可以推断消息传递成功?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-23
    • 1970-01-01
    • 2017-01-27
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    相关资源
    最近更新 更多