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

java - spring websockets:向离线用户发送消息 - 消息未在消息代理中排队

我有一个使用消息代理(activemq)的带有spring和websockets的webapp。

这是我的配置类:

我有一个计划任务,不断向用户名“StanTheMan”推送消息:

目前,如果用户没有通过 websocket 连接到服务器 - 他的所有消息都没有为他排队,他们只是丢弃了每当他连接时 -都会为他排队等待新消息。我是否可以以任何方式将消息“转换并发送到用户”给离线用户?我想将过期时间的消息排入队列,以便离线用户稍后在他们再次连接并且过期时间未结束时推送。

我怎样才能做到这一点?显然使用真正的消息代理(activemq)应该有助于实现这一目标,但是如何实现呢?

谢谢!

0 投票
1 回答
1213 浏览

java - spring websockets - 是否可以向离线用户发送消息?

我的数据库中有很多用户。我希望能够通过 websockets 向他们发送消息,即使他们没有连接。每当我向离线用户发送消息时 - 我希望将消息排队等待他连接,然后将所有消息推送给他。

类似的东西:

这个功能甚至可能吗?

请记住,我使用 activeMQ 作为我的消息总线。(消息代理)。我上面描述的功能是 jms\message queues 中的标准

编辑:我用 activemq 创建了一个应用程序 - 当我向离线用户发送消息时,消息没有入队,它丢失了。有任何想法吗?

谢谢!

0 投票
1 回答
2118 浏览

java - Junit和spring websockets - 每次测试后我都会遇到一个奇怪的异常

当我的 jUnit 测试结束时,我收到以下异常:

任何想法如何防止这种情况?

PS - 测试成功了,但我真的很讨厌看到堆栈跟踪

编辑 - 我的测试课:

}

这是我的代理配置文件:

0 投票
1 回答
1284 浏览

spring - spring websocket SessionDisconnectEvent

我想检测断开连接的用户。我试着听SessionDisconnectEvent,但eventPublisherinStompSubProtocolHandler总是空的,它永远不会发布。我正在使用 4.0.5

0 投票
1 回答
901 浏览

java - Spring 4 Websocket 支持和订阅所有主题的客户端

我目前正在考虑在 Spring 中使用新的 Websocket 支持来替换基于 Netty 构建的自定义服务器。我遇到的问题之一是让 spring 只向单个用户发送消息(基于会话)。

在此测试期间,似乎 websocket 客户端一旦通过身份验证,就可以订阅“/queue/ / ”并为其他用户获取消息。我们在 Eclipse RCP 应用程序中使用 spring websocket 客户端连接到 spring 服务器。

我在这里遗漏了什么,还是我们只是试图以一种非预期的方式使用它?

0 投票
2 回答
2445 浏览

spring - Spring:@Scheduled 任务通过@Controller 和 Websocket 触发

我有一个@Scheduled任务通过 websocket 每秒向客户端发送数据。

我的需要是仅在客户要求时才开始运行我的计划任务。

而不是,我的任务在我的服务器启动时开始。这不是我想要的行为。

目前,我有一个计划任务的 bean,它在我的 SchedulingConfigurer 中声明:

这是我的弹簧控制器代码:

也许用注释不可能做到这一点,@Scheduled我必须使用TaskScheduler界面?

0 投票
1 回答
5416 浏览

javascript - 如何通过spring websocket向特定设备发送消息

我对 Spring websocket 相当陌生。我在下面有一个简单的演示:

HandshakeInterceptor 类:

}

WebsocketEndPoint 类:

}

Spring映射websocket:

html:

现在我想向特定用户发送消息。我定义每个设备都有一个 deviceId,所以我想知道:

  1. 如何与客户端发送的属性握手?
  2. 如何从客户端 javascript 发送握手属性?
  3. 如何通过握手属性将消息从服​​务器发送到客户端?

感谢您的关注。

0 投票
1 回答
275 浏览

angularjs - not updated template view -> it needs mous scroll, or clear input

I'm using angular.js with stomp-websockets,sock.js under by this tutorial http://g00glen00b.be/spring-websockets-angular/. I'm getting messages from websocket, but template view isn't refreshed after message from websocket is arrived. When I want to update template view I need to clear input box, or scroll with mouse.

0 投票
1 回答
1421 浏览

ember.js - 为来自 Spring 后端的域实体提供实时更新的 Web 应用程序

在服务器端,我使用 Spring 4。在浏览器端,我使用 Ember.js。

我的应用程序具有实体类,例如PersonProduct。这些实体在服务器和浏览器上都使用,并且建模相同。例如:

我需要在服务器和浏览器之间保持实体同步。因此,例如,当服务器端aPersonfirstName属性发生变化时,该变化应实时推送到所有感兴趣的浏览器。

我调查了Spring 的 WebSocket 支持,在熟悉了Spring 的“Hello WebSocket”示例之后,我确信使用这项技术是满足我需求的正确方法。

由于 WebSocket/STOMP 非常低级,我正在寻找一种基于该技术的解决方案,并在浏览器(这里的实体角色是观察者)和服务器(实体的角色)之间提供类似于观察者模式的行为这里将是主题/可观察的)。

由于我找不到这个“保持实体同步”挑战的现有解决方案(既不是 Spring 中的解决方案,也不是某些第三方库),我想构建自己的解决方案,但设计已经提出了有趣的问题, 如:

  • 协议应该是什么样的?一旦发生变化,服务器是否应该发送一个最小的帧,只包括实体类型和它的 ID?(例如,一旦PersonID 为“3”的任何属性发生更改,然后发送{"type": "Person", "id": "3"}给所有感兴趣的客户)
  • 可以订阅的实体数量是否存在现实限制?在一个会话期间,单个浏览器可能会接触到数百个Products。

我有兴趣了解哪些解决方案已被证明可以成功地使基于 Spring 的服务器的实体与 JavaScript 客户端的代理实体(不一定是 Ember.js)保持同步。

0 投票
0 回答
4102 浏览

spring - 为 Spring WebSocket @MessageMapping/@SubscribeMapping 使用自定义 JSON 序列化

这工作正常

在我的基于 Spring 的应用程序中,我设置了一个基于 HTTP 的 REST 端点。这个端点“说”JSON:

由于这些 JSON 有效负载必须遵循不寻常的命名约定,我使用了注释,例如@JsonRootName@JsonProperty来自定义序列化的属性名称:

使用此自定义 JSON 元数据,/users/123通过 HTTP 进行查询会返回以下 JSON 有效负载:


以下不按预期工作

现在我在玩 Spring 的 WebSocket 支持:我想创建一个基于 STOMP 的REST 端点。因此我创建了一个StompRestController这样的:

我本来希望@SubscribeMapping/@MessageMapping遵循与@RequestMapping. 但这种情况并非如此。相反,当查询这个 WebSocket/STOMP 端点时,@SubscribeMapping/ @MessageMapping-annotated 方法将导致向客户端发送 STOMP 消息,其有效负载/正文对应于“正常”杰克逊序列化规则,例如

所以:

  • 如何让@SubscribeMapping/ @MessageMapping-annotated 方法遵循@JsonXXX返回值的自定义注释?
  • @JsonXXX除了进行这种返回值序列化之外,还有其他方法吗?