问题标签 [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 回答
1200 浏览

java - 构造没有自动装配的 SimpMessagingTemplate 实例

我试图在客户端连接后将异步消息从服务器发送到客户端,而与用户操作无关。到目前为止,我发现的所有示例都在控制器中自动装配了 SimpMessagingTemplate。是否有一个文件包含有关此对象默认情况下如何自动装配的信息?我的目标是在一个不由 spring 管理的类中使用这个对象。我希望有一种直接的方式来构造对象,而不是尝试通过调试模式使用循环引用重新创建这个深层对象。

这是 servlet xml 的相关部分:

0 投票
3 回答
10108 浏览

java - Spring MVC 和 Websocket 异常使用 Sockjs 和 Stompjs

您好,我有一个 Spring MVC 4.0.4 项目使用 Wildfly 8.1 服务器内的注释完全配置,唯一的问题是当我使用以下 javascript 代码使用 Stompjs 初始化 Sockjs 时,我得到一个我不明白的异常,为了清楚起见当我使用基于 XML 的配置时没有发生,我使用此链接中的教程

Javascript代码

Weboscket Java 配置

例外

Pom.xml

应用程序初始化器

更新

现在在 smoky 的帮助下,websocket 终于在 wildfly 8 上工作了,现在唯一的问题是 sockjs 连接时抛出异常:

Weboscket sockjs 错误

服务器异常

0 投票
1 回答
5095 浏览

java - 使用 Spring 4 WebSocket 从 Java 推送消息

我想将消息从 Java 推送到 WebSocket 客户端。我已经成功地让一个 js 客户端发送到服务器并在 2 个 js 客户端上接收到一条消息,所以客户端代码工作正常。

我的问题是我想在 Java 应用程序中发生事件时启动发送。因此,例如,每次下达 10 个订单时,都会向所有订阅的客户发送一条消息。这可能吗?

我目前的配置:

我想做的是这样的:

并且所有订阅 websocket 的客户端都会收到一条消息。

0 投票
1 回答
1008 浏览

spring-4 - 映射控制器时如何使用 Spring4 发送 STOMP 消息

我有以下代码...

客户端代码似乎连接正常,但我没有看到控制台消息对我来说意味着“/stomp/app/hello”是错误的路径。正确的路径应该是什么?

我也试过 /app/stomp/hello no dice ...

更新

我可以删除@RequestMapping("/stomp/**")并删除与 stomp 相关的东西,它适用于我的简单测试,但是,我需要它适用于不允许这样做的更复杂的应用程序。

0 投票
1 回答
4257 浏览

tomcat - 无法使用 Websocket 应用程序加载资源

我正在使用 Spring Boot 和 Tomcat 7 使用 STOMP 和 sockJS 创建一个带有 Websockets 的 Web 应用程序。以下是我的请求映射的类:

不幸的是,我在网页上的控制台中收到以下错误:

你好是我的大部分代码包,但我不确定导致错误的“信息”目录是什么。有没有人可以帮助我?

编辑:这是我的 Javascript 客户端代码:

还有我的 websocketconfig:

编辑:

WebInitializer.java

编辑2:

WebsocketConfig.java

编辑3:

当我使用 IDE 直接启动它时,我得到了这个SockJS('http://localhost:8080/WarTest/hello'):

但是,当我作为 WAR 部署到 Tomcat 时,我收到了找不到 URL/信息的错误。

0 投票
1 回答
776 浏览

java - 移除对 Jackson 的依赖

在 Spring-MVC 中,您可以使用以下方法将 Jackson 库作为依赖项删除并替换为您自己的:

我正在尝试为 Spring-Websocket 做同样的事情,所以我已经覆盖了这两种方法:

然而,在某个地方仍然依赖于杰克逊,我不知道在哪里。

编辑

这是一个堆栈跟踪:

0 投票
1 回答
535 浏览

spring-mvc - 使用 STOMP/WebSockets/Spring 从 @SubscribeMapping 返回原始字符串

我有一个使用 STOMP over websockets 的 Spring-MVC 控制器。除了订阅时在我的 STOMP JavaScript 客户端中收到的字符串之外,一切都正常工作,可能是由 Spring 转义的。

我可以在网络上和官方文档中找到的所有示例都使用 POJO 作为返回类型,然后自动神奇地使用 Jackson JSON 转换 - 我不希望这样,因为我返回的 JSON 是完全动态的 - 我如何关闭这种废话所以我可以只返回一个纯字符串!?

如果 customJsonConversion 的输出是 {"x":1}

0 投票
2 回答
2479 浏览

java - Spring websocket 和 Stomp.js - 我应该在订阅和发送之间等待多长时间?

我有以下代码(来自 spring websocket 演示应用程序):

这是对服务器上队列的简单订阅调用,另一个发送调用服务器的方法“sendName()”。

调用 sendName 后,服务器响应 connect 方法提供的回调函数:

我的问题是 - 客户应该从subscribe呼叫等待多长时间才能开始呼叫sendName?我的意思是,我可以在这里看到的潜在问题如下:

i) 客户端首先订阅队列,

ii) 客户端调用 sendName

iii)服务器在收到订阅呼叫之前收到第二个呼叫。

iv) 客户端不会收到来自服务器的响应。

我的问题:

1)这种情况真的是一个问题吗?

2)我怎样才能避免它?

3)我在某处读到,由于 websocket 与 tcp 一起使用,消息的顺序得到了维护,所以我的最后一个问题是 - 对于没有 websocket 支持的客户端,stompJS 的后备功能怎么样?订单也会维持吗?

0 投票
0 回答
331 浏览

java - Spring websocket - stompJS, Is it possible to send messages with callback function without subscribing?

I have the following code from a very popular spring websocket demo:

On connect, we actually subscribe to to a queue and provide a callback method.

Now, imagine i have a server service for the websocket that is called getAllUsers

and lets assume i have 2 different components in my front end, usersOnGeographicMap, usersOnDataTable.

lets assume this 2 view components want to make use of the server service (getAllUsers). these 2 component each has a callback function, (one that displays the users on a geographic map, the other callback function draws them on a data table)

the problem now is that i only subscribe to a queue once, and provide him with one callback function. so how do i solve this issue?

ofcourse in ajax it will be very easy because each call is provided with a call back: -usersOnGeographicMap.getUsersAjax(callback1) -usersOnDataTable.getUsersAjax(callback2)

0 投票
1 回答
1717 浏览

spring - Spring 如何管理与 RabbitMQ 的 websocket 连接?

我有一个使用 websocket 进行实时多人游戏的游戏服务器。这是一个 Spring 4 应用程序,我使用 RabbitMQ 作为我的代理。这是我的配置:

从 4 个客户端的一个非常小的测试中,我看到 Rabbit 上打开了 4 个连接。

每个使用 websocket 连接到我的服务器的客户端最终是否会打开与代理 (RabbitMQ) 的新连接?这个可以配置吗?