Websocket: Wie Push Eine Nachricht Zu Einem Ziel-Benutzer
Ich versuche, die Implementierung eines push-Benachrichtigung im Frühjahr mit websocket und mit der Verwendung von sock.js.
Diese sind der code-Schnipsel:
public class NotifyController {
@MessageMapping("/notifications")
@SendTo("/get/notifications")
public Greeting greeting(HelloMessage message) throws Exception {
new Greeting("Hello, " + message.getName() + "!");
}
}
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
config.enableSimpleBroker("/get/notifications");
config.setApplicationDestinationPrefixes("/gssocket");
}
@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
registry.addEndpoint("/notifications").withSockJS();
}
}
Dies ist der code in der front..
function connect() {
var notificationSocket = new SockJS('/notifications');
stompNotificationClient = Stomp.over(notificationSocket);
stompNotificationClient.connect({}, function(frame) {
console.log('Connected: ' + frame);
stompNotificationClient.subscribe('/get/notifications', function(greeting){
showGreeting(JSON.parse(greeting.body).content);
});
});
}
function sendNotification() {
var name = "test"
stompNotificationClient.send("/gssocket/notifications", {}, JSON.stringify({ 'name': name }));
}
Habe ich es schon geschafft, damit es funktioniert. Aber die Frage ist, wie kann ich push die Nachricht an bestimmte Anwender-Zielgruppe. Zum Beispiel gibt es 5 online-Nutzer, nämlich: user1, user2, user3, user4 und user5. Ich will, dass die zu veröffentlichenden Meldung an die user1 und user2 nur. Können Sie mir eine Idee, wie Sie diese erreichen eine? Ich denke, entweder tun es im backend oder im frontend. Oder gibt es einen anderen Weg, dies zu erreichen mit spring.
Mir jemand helfen bitte.
Danke.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie überprüfen, Benutzer Destinationen auf bestimmte Benutzer mit Ihren Nachrichten geschieht dies über die SimpMessagingTemplate.convertAndSendToUser () - Aufruf.
Beachten Sie, dass zum aktivieren dieser Funktionalität müssen die Benutzer HTTP authentifiziert.
SimpMessageTemplate.convertAndSendToUser
wenn Sie einen Blick auf den code, es buchstäblich nur Präfixe '/user/{username} " und verwendet dann dieSimpMessageTemplate.convertAndSend
Methode. Es ist nicht wirklich um die Sicherheit besorgt.