首页 > 解决方案 > 什么 STOMP 标头可以关闭订阅?

问题描述

服务器是否有标准方法向 STOMP(Web 套接字)客户端指示它应该关闭连接?(即从房间“踢”他们)。

据我所知,有:

用例包括:当所有其他成员都取消订阅时关闭主题,在临时使用结束时关闭主题(例如获取大文档)。

标签: websocketstompspring-websocket

解决方案


STOMP 规范无法告诉客户端它需要从目的地取消订阅。在我看来,如果服务器认为客户端有必要取消订阅,则服务器应该简单地断开订阅者并执行必要的服务器端清理。STOMP 支持某些“服务器”框架(即MESSAGE, RECEIPT, & ERROR)。一个ERROR框架可能适合这里。这样的框架可以包括有关客户端断开连接原因的详细信息。

此外,值得注意的是,STOMP 仅指定对通用目的地的支持,而不考虑交付语义,因此谈论 STOMP“主题”在技术上并不准确。当然,实现者可以自由地提供他们想要的各种交付语义,如果这些语义符合传统的“主题”(即发布/订阅)语义,那当然是允许的。


推荐阅读