无法使队列中的先前消息出队

时间:2019-01-11 11:05:20

标签: java android rest

我正在使用stomp在websocket上使用android和spring创建一个聊天应用程序。当我向特定客户端发送多个消息时,它仅显示队列中的最后一条消息,而不显示所有先前的消息。我想查看队列中所有消息。

客户端

mStompClient =Stomp.over(WebSocket.class, "url");
    mStompClient.connect();


    mStompClient.topic("/topic/queue"+clientid).subscribe(topicMessage -> {


        textView.setText(topicMessage.getPayload());

    });

服务器端

@MessageMapping("/chat")
@SendTo("/topic/queue")

 public String sendMessage(String msg) {


    simpMessagingTemplate.convertAndSend("/topic/queue"+clientid,msg );

    return "";
}

1 个答案:

答案 0 :(得分:0)

在我看来,您应该保留之前发送的数据,然后从队列中添加新的传入消息并异步馈送数据存储。

  1. 步骤:用户打开聊天窗口,然后从数据库中获取数据。
  2. 步骤:将消息发送到队列,消费者应该收听队列并将新消息提供给聊天窗口和数据存储。
  3. 步骤:如果用户退出应用程序,无论发生什么情况。您可以显示数据存储中的数据。