问题标签 [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.

0 投票
2 回答
1253 浏览

java - 使用 Spring 的 STOMP 上的 RPC,并正确处理传播到客户端的服务器端错误

我需要通过 STOMP 实现 RPC,其中客户端在浏览器中使用 javascript 运行,而服务器端使用 Spring 消息传递功能实现。

虽然使用@MessageMapping 对于正常的消息传递来说很好,但我发现使用@SendToUser 对实现RPC 有很大的限制,因为在从客户端发出多个同时请求的场景中,客户端很难理解哪个回复与哪个请求相关联。

当然,只发出一个请求,并且客户端等待其回复时没有问题,但是当客户端必须跟踪多个“打开”的 rpc 调用时,就会出现问题。

通过将 ID 与每个请求相关联,我已经设法使系统基本正常,即:客户端将一个 ID 与消息一起发送,服务器使用包含此 ID 的特殊消息包装器进行回复,因此客户端能够将异步回复与请求相关联。

这工作正常,但有几个限制:

  • 我必须开发需要理解这种结构的代码,并且无法使用简单的带注释的方法

  • 当服务器端代码生成异常时,会调用 Spring @MessageExceptionHandler 并将正确的异常返回给客户端,但请求 ID 会丢失,因为处理程序没有(简单的)方法可以访问它。

我知道,使用rabbitmq,我们可以将“reply-to”标头添加到需要与特殊回复(rpc 响应)关联的每个请求中,这是通过创建用户自动订阅的特殊临时队列来实现的,但是我如何在 Spring 中使用这个方案呢?此外,这将使我与一个特定的经纪人联系在一起。

如何在 Spring 中优雅地实现正确处理服务器端异常的正确 RPC 调用?

我发现这是一个普遍的问题,我认为 Spring 可以极大地受益于本机实现它。

0 投票
3 回答
1860 浏览

spring - 找不到 AbstractWebSocketMessageBrokerConfigurer

我正在使用http://spring.io/guides/gs/messaging-stomp-websocket/教程创建一个示例应用程序,我已经添加了所需的 jar,但仍然在 WebSocketConfig.java 文件中得到“AbstractWebSocketMessageBrokerConfigurer 无法解析为类型”。我需要使用哪个 jar,因为目前我正在使用 spring-webmvc-4.0.0.RELEASE.jar、spring-websocket-4.0.0.RELEASE.jar 和 spring-messaging-4.0.0.RELEASE.jar 文件。

提前致谢。

0 投票
1 回答
1900 浏览

java - Websockets、SockJs、Stomp、Spring、RabbitMQ,自动删除用户特定队列

我希望有人可以帮助我解决这个问题。我正在使用带有 SockJs 和 StompJs 的 Spring 的 Websocket 支持。我订阅了这样的队列:

这对 Spring 的 SimpMessageSendingOperations 非常有效。但是有一个大问题。队列名称如下所示:gotMessage-user3w4tstcj,它没有声明为自动删除队列,但这就是我想要的。否则,我有 10k 个未使用的队列。在队列没有消费者的那一刻,应该删除队列。我怎么能假设这个?

0 投票
0 回答
524 浏览

java - Spring Controller 实现 ApplicationListener

我在 spring 4.0.5 中实现 WebSocket。客户端(浏览器)保持与服务器的连接。当我的服务层在后端更新一些记录时,我想通知客户端订阅了特定主题。

我希望我的控制器监听我的 ApplicationEvent 并将其发布到 WebSocket 客户端。这可能吗?

我在我的服务层中实现了另一个侦听器,它可以捕获事件。控制器无法监听ApplicationEvent是真的吗?

0 投票
1 回答
1572 浏览

java - Spring websocket端点并发送消息

我有一个 JMS 监听器,我必须接收消息,对其进行操作,然后使用 websocket 将其重定向到一个页面。

好吧,我只是对配置感到困惑,我已经配置了WebSocketConfig:

这应该是正确的,然后我的网页是:

并且连接有效。

现在在我的 jms 监听器上,我尝试以这种方式发送消息:

但它不起作用。问题是:

  1. 如何发送消息?
  2. 发送消息时,我必须在哪里指定结束点 (secondep)?

谢谢!任何帮助表示赞赏!

0 投票
5 回答
13383 浏览

java - Spring Websockets @SendToUser 无需登录?

我有一个带有 websocket 功能的简单 spring 应用程序,到目前为止一切正常。现在我想使用 @SendToUser 注释从我的服务器向特定客户端发送一条消息。这给了我错误“忽略消息,没有可用的主体信息”。我知道我的服务器上没有任何登录,所以每个用户都是“匿名的”并且没有主体(我现在没有使用 spring security)。但是每个用户都有一个会话 ID。是否可以以某种方式使用会话 ID 来区分用户?我怎样才能做到这一点,以便我的用户获得与会话 ID 对应的主体?

0 投票
2 回答
452 浏览

spring-websocket - jpa 存储库 websocket @MessageMapping

我发现,spring 不会为要执行@MessageMapping 注释的操作的 websocket 请求创建事务。即使我将操作注释为@Transactional,也不会发生任何事情。

我还尝试了带有 @RequestMapping 注释的操作的方式。这照常工作。

有人知道我怎样才能完成这项工作吗?如何使 websocket 请求具有事务性?

0 投票
1 回答
1250 浏览

grails - @MessageMapping 与 Grails spring-websocket 插件

我是 Grails 新手,致力于让 WebSockets 在应用程序中工作。我得到了大部分工作,除了我不知道如何将参数传递给使用@MessageMapping 注释的方法。

这有效:

我需要这样的东西才能工作:

但它不起作用。我尝试更改 UrlMappings.groovy、@PathVariable。我很确定我错过了一些简单的东西。任何指针?

0 投票
1 回答
459 浏览

java - How to get message using websocket?

I am using websocket.

I want to send "message" to server.

ex) at Client

but i don't know how to get "message" at Controller.

how get message at Controller?

0 投票
1 回答
13087 浏览

spring - 春季简单的推送通知

我有一个与招聘信息相关的项目。顾问或雇主在我的网站上注册,然后开始发布工作。我想为所有用户制作推送通知。当顾问或雇主发布工作时,必须通知所有在线用户雇主已发布此工作,而 jquery setInterval 或超时没有任何页面刷新。

我正在使用 Spring 框架。我已经搜索了解决方案,但一无所获。我想知道 Spring 是否在其最新版本中提供了 WebSockets。这可能与WebSockets有关吗?

我想要一个适当的资源,以便我可以在我的网站上实现它。