问题标签 [spring-websocket]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
spring - websockets、spring 4和tomcat 7没有这样的方法问题
嗨,我在 websockets 和 spring 4 和 tomcat 7 上遇到了以下问题。我在 tomcat 上部署了应用程序,当我尝试让 websocket 工作时,出现以下错误。
任何人都对我的冲突在哪里有任何想法,我知道它是一个 Maven 依赖问题,一直在遍历层次结构......
spring-websocket - Spring websocket 消息传递模板不会在没有 @Scheduler 注释的情况下从 Controller 发布数据
上面的代码按预定的延迟时间将数据发布到 UI。但是如果我注释掉@Scheduler 注释并从handleRequest 调用此方法,它不会将数据发布到UI。可能是什么原因?
spring - Spring 4 STOMP 在连接时未在标头中发送队列后缀
我写了一个小项目,它使用带有 Websockets 和 RabbitMQ 作为代理的 Spring MVC 4。我正在尝试发回给单个用户(convertAndSendToUser),但我似乎无法让它工作。这是应用程序的作用:
- 通过 HTTP 向 Spring Security 进行身份验证。身份验证通过 AJAX 进行,后端为每个新连接分配一个 UUID 作为用户名。可能有多个客户端使用相同的用户名,所以我希望能够针对单个浏览器,尽管它们可能使用相同的用户名登录
在通过 AJAX 进行身份验证后,webapp 使用 STOMP over Websockets 连接到 API。这些是在 CONNECT FRAME 中发回的标头
正文:"" 命令:"CONNECTED" 标头:对象心跳:"0,0" 服务器:"RabbitMQ/3.3.1" 会话:"session-OGzAN6T8Y0X9ft3Jq04fiQ" 用户名:"88dc9424-72e3-4814-be8c- e31dbf89b521" 版本:"1.1"
如您所见,没有frame-suffix或 session-id 字段。
- 当我从后端使用 convertAndSendToUser 时,响应会发送到一个独特的队列,例如:/exchange/jobs-userh6g_48h9。队列名称是 /exchange/jobs 但 Spring 自动附加后缀-userh6g_48h9。用户名是“user”,sessionId 是“h6g_48h9” 这很好,我想要这种行为,但问题是客户端(webapp)在 CONNECT 框架中没有得到这个会话 id,没有办法让它实际上订阅了那个独特的队列。
如何解决这个问题?我希望在连接时将队列后缀/会话 ID 发送回给我,以便客户端可以获取此后缀并订阅他的唯一队列。由于缺乏信息,目前没有消息从服务器返回。
java - 手动设置 Spring WebSocket STOMP 支持
我正在尝试使用 spring-websocket 和 spring-messaging 设置一个 STOMP WS 端点。我正在尝试手动执行此操作:根本不涉及应用程序上下文,当然也没有调度程序。我的目标是在 ServletContextListener 内的代码中连接适当的 Spring 组件,然后在我的 JSR 356 兼容容器(Tomcat 7)中直接使用 javax.websocket.server.ServerContainer 注册连接的组件。首先,我想使用 spring-messaging 中内置的“简单”代理来实现这个功能;其次,我想实现自己的“代理”,以使用 VM 传输直接与进程内 ActiveMQ 集成。这将与 spring-messaging 也提供的 STOMP 中继形成对比。
Spring 文档状态(http://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html):
“...Spring 的 WebSocket 支持不依赖于 Spring MVC。借助 WebSocketHttpRequestHandler 将 WebSocketHandler 集成到其他 HTTP 服务环境中相对简单。”
但是,我发现它并不简单。本质上,我从以下内容开始:
并以各种不连贯的 spring-websocket 和 spring-messaging 构造函数调用结束,这些调用无法编译,当然不值得在这里重现。
我意识到这有点模糊,这是因为我有点迷路了!有没有人做过这样的事情,或者有一些一般性的指导可以做出贡献?
spring - 如何在连接事件(SockJS、STOMP、Spring)上发送消息?
我通过 SockJS 通过 STOMP 连接到我的 Spring 后端。一切正常,配置适用于所有浏览器等。但是,我找不到发送初始消息的方法。情况如下:
- 客户端连接到主题
后端配置看起来或多或少像这样:
- I want to send to the client an automatic reply from the backend (on the connection event) so that I can already provide him with some dataset (e.g. read sth from the db) without the need for him (the client) to send a GET request (or any other). So to sum up, I just want to send him a message on the topic with the SimMessagingTemplate object just after he connected.
Usually I do it the following way, e.g. in a REST controller, when the template is already autowired:
How to achieve this on connect event?
UPDATE
I have managed to make it work. However, I am still a bit confused with the configuration. I will show here 2 configurations how the initial message can be sent:
1) First solution
JS part
Java part
Configuration
...和其他电话
2)第二种解决方案
JS部分
Java部分
配置
...和其他电话
概括:
第一种情况使用两个订阅——我想避免这种情况,并认为这可以只用一个来管理。
然而,第二个没有应用前缀。但至少我可以有一个订阅来收听提供的主题以及发送初始消息。
spring - 在内部订阅 spring-websocket 消息
我正在使用 spring-websocket 将消息推送到浏览器客户端。
我的设置几乎与投资组合示例中的设置相同,我使用MessageSendingOperations发送消息:
这完美地工作。
但我也希望能够在内部订阅相同的消息。
MessageReceivingOperations几乎看起来像使用的那个,但它似乎只支持拉消息。我更希望将消息推送到我的服务。
SubscribableChannel.subscribe()看起来也很有希望,但是我如何获得正确的频道呢?
我真的很希望能够调用类似的东西
spring - 如何在spring websockets中找到所有订阅主题的用户
在使用 Spring Websockets 制作诸如聊天应用程序之类的东西时,了解谁订阅了任何给定主题是很有用的。例如,在客户端中显示的存在数据。
我知道我可以实现 ApplicationListener 并保留我自己的“已连接用户”列表,但似乎该库必须已经在做这项工作。
直接从库中获取活动订阅信息的推荐方法是什么(而不在内存或数据库中维护我自己的列表)。
spring - Stomp.js 和 Spring WebSocket 与 Web MVC 项目的集成
我有一个以 '*.htm' 扩展名运行的 spring 项目,我们已将其绑定在 web.xml 文件中。
现在我想为聊天应用程序集成 Spring WebSocket 和 stomp js,但这里的问题是 stomp.js 正在将请求发送到没有“.htm”扩展名的服务器。因此,我在每个请求(信息或其他 xhr)中都收到 404 错误。
有什么方法可以启用 Spring WebSocket 和 stomp js 扩展名为 '.htm' 吗?
我无法删除此扩展程序,它将拖累我当前的应用程序。
stomp - Spring Stomp @SubscribeMapping 用于用户目标
当用户使用 @SubscribeMapping 注释订阅 stomp 用户目的地时,我试图得到通知。我的想法是在它加入时发送一些初始化数据。
虽然我无法让这个工作:
Javascript:
Java端:
我尝试了很多映射组合,例如“/user/monitor-{clientId}”、“/user/monitor”(删除clientId),完全没有成功。
什么是预期的映射值,所以这个被调用?
谢谢!
spring - Spring 4 websocket + Tomcat 7.54 异步支持不起作用
我正在使用 Spring websockets 和 stomp.js 创建一个示例聊天应用程序,我使用的是 tomcat 7.54,但是在运行该应用程序时,当浏览器发出 xhr 请求时,我遇到了一个支持异步的错误。
服务器信息:Apache Tomcat/7.0.54 Servlet 版本:3.0 JSP 版本:2.2 Java 版本:1.7.0_25
Web.xml
调度程序-servlet.xml
错误