点作为分隔符

当消息路由到 @MessageMapping 方法时,它们会与 AntPathMatcher 进行匹配。默认情况下,模式预期使用斜杠 (/) 作为分隔符。这在 Web 应用程序中是一个很好的约定,类似于 HTTP URL。但是,如果您更习惯于消息传递约定,则可以切换为使用点 (.) 作为分隔符。

以下示例展示了如何实现:

之后,控制器可以在 @MessageMapping 方法中使用点 (.) 作为分隔符,如以下示例所示:

客户端现在可以向 /app/red.blue.green123 发送消息。

在前面的示例中,我们没有更改 “broker relay” 上的前缀,因为这些前缀完全取决于外部消息代理。请参阅您使用的代理的 STOMP 文档页面,以了解它支持的目标头部的约定。

另一方面,“simple broker” 确实依赖于配置的 PathMatcher,因此,如果您切换分隔符,该更改也适用于代理以及代理将消息中的目标与订阅中的模式进行匹配的方式。