Próbuję zaimplementować powiadomienie push wiosną, używając websocket i przy użyciu sock.js.Websocket: Jak przekazać wiadomość do docelowego użytkownika
Są to fragmenty kodu:
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();
}
}
Jest to kod z przodu ..
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 }));
}
Już udało się tego dokonać. Ale pytanie brzmi: jak mogę przekazać wiadomość do niektórych docelowych użytkowników. Na przykład jest 5 użytkowników online, a mianowicie: użytkownik1, użytkownik2, użytkownik3, użytkownik4 i użytkownik5. Chcę, aby powiadomienie zostało opublikowane tylko dla użytkownika 1 i użytkownika 2. Czy możesz mi powiedzieć, jak to osiągnąć? Myślę o tym, czy robię to w backendu, czy w interfejsie. Lub jest inny sposób, aby osiągnąć to za pomocą wiosny.
Ktoś mi pomóc.
Dziękuję.
http://stackoverflow.com/questions/23594671/spring-websocket-notification/23596605#23596605 –