返回介绍

18.4 为目标用户发送消息

发布于 2024-08-17 00:45:49 字数 572 浏览 0 评论 0 收藏 0

到目前为止,我们所发送和接收的消息都是客户端(在Web浏览器中)和服务器端之间的,并没有考虑到客户端的用户。当带有@MessageMapping注解的方法触发时,我们知道收到了消息,但是并不知道消息来源于谁。类似地,因为我们不知道用户是谁,所以消息会发送到所有订阅对应主题的客户端上,没有办法发送消息给指定用户。

但是,如果你知道用户是谁的话,那么就能处理与某个用户相关的消息,而不仅仅是与所有客户端相关联。好消息是我们已经了解了如何识别用户。通过使用与第9章相同的认证机制,我们可以使用Spring Security来认证用户,并为目标用户处理消息。

在使用Spring和STOMP消息功能的时候,我们有三种方式利用认证用户:

@MessageMapping和@SubscribeMapping标注的方法能够使用Principal来获取认证用户;

@MessageMapping、@SubscribeMapping和@MessageException方法返回的值能够以消息的形式发送给认证用户;

SimpMessagingTemplate能够发送消息给特定用户。

我们首先看一下前两种方式,它们都能让控制器的消息处理方法使用针对特定用户的消息。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文