stomp-js / ng2-stompjs

Angular 6 and 7 - Stomp service over Websockets
https://stomp-js.github.io/
Apache License 2.0
182 stars 32 forks source link

Question about server errors #189

Open kum-deepak opened 4 years ago

kum-deepak commented 4 years ago

By @cainaj, copied from https://github.com/stomp-js/ng2-stompjs/issues/121#issuecomment-604769197

Hi, I have a question about error handling with this library. I have something like:

startConnetionProcess() {
    this.connecting = true;
    this.pending = true;
    this.authService.getIdToken()
    .pipe(takeUntil(componentDestroyed(this)))
    .subscribe(token => {
      this.token = token;

      const stompConfig = {
        brokerURL: environment.webSocketUrl + '/api/listen',
        connectHeaders: {
          'token': this.token,
          topic: this.topic,
          env: this.env
        },
        debug(str) {
          console.log('STOMP: ' + str);
        }
      };
      this.connect(stompConfig);
    });
  }

where connect() calls a method that executes configure() and activate().

My problem comes when there is an error on the server side. If this connection is not established, I can see it if I have the debug option on my stompConfig config; however, inside of debug, i cannot call any functions apparently. I am using Angular 8. How can I handle an error? I haven't seen any references to error handling.

kum-deepak commented 4 years ago

Please see https://stomp-js.github.io/api-docs/latest/classes/RxStomp.html#stompErrors$

A compliant STOMP Broker will send ERROR frame in case of an error and close the connection. However some brokers do not adhere to it. See if it helps.