我正在使用websockets创建一个简单的客户端 - 服务器演示。在此演示中,客户端可以订阅不同的主题。每当服务器有任何要发送的内容时,它只会在适当的主题上发送消息,只有订阅的客户端才会收到相同的消息。
我的服务器应该在将消息发送到任何主题时得到确认,但我有点困惑,当发送方法返回void
下面是我的 WebSocketConfig 类,
@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/testApp");
config.setApplicationDestinationPrefixes("/app");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/message").withSockJS();
}
}
以下是主题订阅在客户端发生的方式
var topic = '/testApp/testTopic';
stompClient.subscribe(topic, function(greeting){
});
以下是服务器向特定主题发送消息 的方式,
String message = "test message";
this.template.convertAndSend(topic, new Chat(message));
上述方法(即this.template.convertAndSend(topic, new Chat(message));
)返回void
最后我能够成功地向所有/特定订阅客户端发送消息,但不知道如何确保消息是否在另一端成功发送?