Stompjs 订阅 auto-delete queue

Stompjs subscribe auto-delete queue

应用以下内容时:

client.subscribe(`/user/queue/${ chatRoomId }.private.messages`, callback, {
    'auto-delete': 'true'
});

我收到以下错误:

2022-01-10 02:09:31.908 ERROR 99494 --- [ent-scheduler-3] o.s.m.s.s.StompBrokerRelayMessageHandler : Received ERROR {message=[precondition_failed], content-type=[text/plain], version=[1.0,1.1,1.2], content-length=[223]} session=system text/plain payload=PRECONDITION_FAILED - inequivalent arg 'auto_delete' for queue 'room-post-6cf8fa...(truncated)

我使用 RabbitMq 与 3.7:https://github.com/quangthe/docker-rabbitmq-stomp

我不确定为什么它会提到 auto_delete,因为要使用的 header 是 auto-delete。 当我省略 header(或使用无用的 auto_delete,因为它被忽略了)时效果很好,但这将创建无限数量的 queue。 每次用户刷新浏览器时,显然不应该创建一个新的 queue。 没有人会手动删除数千个 queue。

我有一个 Java 后端使用最新的依赖项

    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-stomp</artifactId>
        <version>5.5.5</version>
    </dependency>

问题已通过 here 所述的交换解决。

如果不自动删除,那么使用使用常规队列的最常见示例没有多大意义。没有人愿意处理成千上万个未清理的队列。