19 Temmuz 2021 Pazartesi

SpringStomp MessageBrokerRegistry Sınıfı - Stomp İçin Kullanılacak Broker Ayarları

Giriş
Şu satırı dahil ederiz
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
enableSimplerBroker metodu
Örnek
Şöyle yaparız. enableSimpleBroker() çağrısı ile Spring'in içindeki basit bir broker etkinleştirilir. Bu broker gerçek bir broker değildir.
@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
  config.enableSimpleBroker("/topic");
  config.setApplicationDestinationPrefixes("/app");
}
Örnek
Şöyle yaparız.
@Override
public void configureMessageBroker(MessageBrokerRegistry registry) {
  registry.enableSimpleBroker("/topic", "/queue");
  registry.setApplicationDestinationPrefixes("/app");
  registry.setUserDestinationPrefix("/user");
}
enableStompBrokerRelay metodu
Açıklaması şöyle
... we can use Spring’s out-of-the-box BrokerRelay implementation that uses an external broker (RabbitMQ, ActiveMQ, etc.) to process WebSockets, manage subscriptions, and more.
Eğer RabbitMQ kullanıyorsak açıklaması şöyle
The point is that RabbitMQ does not allow slashes after standard routes. Thus, if we send a message to the routes /topic/ or /queue/, then there should be no other slashes in the name. The easy way here is to rename all destinations on the frontend and backend sides by replacing the slashes with dots.
Örnek
Şöyle yaparız
@Configuration
public class WebSocketConfig extends
AbstractSecurityWebSocketMessageBrokerConfigurer {

  @Override
  public void configureMessageBroker(MessageBrokerRegistry registry) {
    registry.enableStompBrokerRelay("/topic", "/queue")
      .setClientLogin("guest")
      .setClientPasscode("guest")
      .setSystemLogin("guest")
      .setSystemPasscode("guest")
      .setRelayHost("127.0.0.1")
      .setRelayPort(61613);
  }
}

Hiç yorum yok:

Yorum Gönder