Web 套接字项删除约定

Posted

技术标签:

【中文标题】Web 套接字项删除约定【英文标题】:Web socket item remove convention 【发布时间】:2014-11-26 19:20:40 【问题描述】:

我正在实现一个 WebSocket 客户端来显示与服务器状态同步的项目列表。我在后端使用 Spring,在前端使用 AngularJS。我已经经历了很多例子,到目前为止都讨论了如何在客户端添加项目。然而,我想知道是否有关于如何处理添加和删除的约定。我正在考虑使用STOMP 并订阅addremove topics。有没有确定的替代方案?

【问题讨论】:

【参考方案1】:

这看起来非常适合新的 Spring Sync,它提供基于 differential synchronization 算法和 JSON 补丁的同步,因此可以跟踪对象的更改并与其他对象同步。

查看 SpringOne2GX 2014 中的 Differential Sync and JSON Patch 演示文稿和 GitHub samples(特别是 scores,它使用了 WebSocket)。

【讨论】:

感谢伟大的链接!我觉得这在我的特定用例中可能有点矫枉过正,因为我只会在列表中添加和删除项目,但我会考虑它。 始终考虑用例,也许在创建/删除项目时有通知对您来说就足够了,但如果这更像是一个横切关注点,您可能需要考虑 Spring Sync 【参考方案2】:

如果您询问在 Spring STOMP 中使用请求-回复消息实现 API 的 RPC 样式的惯用方法,我建议使用 @SubscribeMapping 注释方法。这些目的地看起来像真正的经纪人的“主题”,所以你可以订阅它们,但它们的订阅只持续到响应被传递。这里有更多关于@SubscribeMapping:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html#websocket-stomp-handle-annotations

【讨论】:

以上是关于Web 套接字项删除约定的主要内容,如果未能解决你的问题,请参考以下文章

应用程序崩溃时未删除 Unix 域套接字文件

在 JavaScript 中,有没有办法将 Web 套接字消息的处理推迟到设置标志之前?

消息推送技术

Socket编程

以 redux 状态存储大数据 - 30,000 项

接受侦听套接字上的侦听套接字上的连接(并且不再侦听)?