我使用spring / stomp / websocket框架异步通知用户消息。 我成功完成了这个。 但是,我会从客户端获得ACK,以便在完成此操作时可以执行某些服务器端操作。

流程大致如下:

  1. 服务通知特定用户有关决策并使用status =“已通知”更新数据库中的记录
  2. 客户端收到消息(使用stompClient.subscribe(...))
  3. 客户确认收到了该消息。
  4. 服务“知道”该消息已被确认,并将状态更新为DB中的“ACK”。

     stompClient.connect({login:'guest', passcode:'guest'}, function(frame) { setConnected(true); **var headers = {ack: 'client'};** ... stompClient.subscribe('/user/guest/response',function(notification) { //doSomething }), **headers**); } 

在服务中,消息被发送:

  this.messagingTemplate.convertAndSendToUser(user, "/response",msg, map);

有没有办法在服务器端处理客户端ACK? 或者,我试着做一个

stompClient.send("/app/response/ack/"+messageId);

在客户端上,在处理订阅的方法中,但是徒劳无功。

有人可以告诉我什么是处理确认的标准方法? 我已经苦苦挣扎了几天,任何想法都会非常有帮助。

谢谢!

#1楼 票数:3 已采纳

根据规范使用ACK帧。 服务器发送ack:some_id头,客户端在ACK帧中使用some_id

#2楼 票数:2

简单的经纪人的答案是否定的。

https://docs.spring.io/spring/docs/current/spring-framework-reference/html/websocket.html

简单的代理非常适合入门,但仅支持STOMP命令的子集(例如, 没有ack,收据等),依赖于简单的消息发送循环,并且不适合于群集。 作为替代方案,应用程序可以升级到使用功能齐全的消息代理。

  ask by myspri translate from so

未解决问题?本站智能推荐:

2回复

使用 Spring Websocket STOMP Java 从客户端向服务器发送消息

我正在浏览 Internet 上有关使用 Spring Websocket STOMP 发送/接收消息的文档。 我可以看到从后端向前端发送消息的各种示例(下面给出的示例),但没有看到任何将消息从前端发送到后端的示例。有人可以帮忙吗? //控制器代码this.simpMessagingTempla
1回复

在每个http请求上向客户端发送stomp消息

我有一个弹簧启动服务器和一个客户端,它们使用STOMP通过Websockets连接。 我的用例是每次向特定端点发出http请求时,我都希望将数据发送到客户端。 我找到的所有教程,只显示案例,客户端将一些数据发送到“/ hello”,服务器通过向“topic / greetings”发送数
1回复

如何使用 STOMP 从 Spring WebSocket 服务器向 WebSocket 客户端发送消息?

我有两个使用 STOMP 的 Spring Boot WebSocket 应用程序: 网络套接字服务器 网络套接字客户端 我能够从客户端发送 WebSocket 消息并从服务器响应它。 但是,现在我想向由服务器端的事件触发的客户端发送一条 WebSocket 消息。 有人可以告诉我一种方
2回复

带有Spring Server的Stomp客户端

我有个问题: 该应用程序在Tomcat 8.5上运行 Android客户端 我的服务器Spring: 。 和控制器: 我创建了客户端作为链接LINK 。
2回复

Stomp SockJs客户端+服务器Spring

我有一个春季启动应用程序,我使用npm和webpack。 我想启动一个websocket,以将一些消息从服务器发送到客户端。 我的服务器是使用Java构建的,而客户端是使用stomp和sockjs使用javascript的。 这是我的代码:客户: 服务器:配置: 控制器:
3回复

如何在客户端获取会话ID? (的WebSocket)

有没有办法做到这一点? 客户端: 服务器端并不重要。 执行上面的代码后,我需要知道我的会话ID。
4回复

如何使用和自定义MessageConversion(Spring websocket客户端)

我用spring编写了一个Web套接字服务器和一个客户端。 代码如下。 向服务器发送消息的代码工作,但sesssion.subscribe方法无法从服务器接收消息。 我搜索了许多文件并检查了我的代码。 我不知道为什么它不起作用。 这是我的客户代码: 这是我的服务器代码:
4回复

在服务器端使用 Spring 框架在 android 中设置 Stomp 客户端

我正在开发一个 android 应用程序,它与在 Spring 中配置的码头服务器交换数据。 为了获得更动态的 android 应用程序,我尝试将 WebSocket 协议与 Stomp 消息一起使用。 为了实现这些东西,我在 spring 中配置了一个 web socket 消息代理: 和