Я пытаюсь создать угловой клиент, который использует веб-сокеты, и я использую @stomp/ng2-stompjs. Я следую этому руководству https://stomp-js.github.io/guide/ng2-stompjs/ng2-stomp-with-angular7.html
Все работает отлично, за исключением того, что мне нужно установить в connectHeaders токен, который я использую для аутентификации на стороне сервера, для этого я прочитал, что мне нужно использовать функцию beforeConnect
Я пробовал по-разному, но я не понимаю, как его использовать, он зависает или отправляет пустой токен
Мой rxStompConfig:
класс экспорта RxStompConfig расширяет InjectableRxStompConfig {
constructor(private userService: UserService) {
super();
this.brokerURL = env.wsServerBaseUrl;
// Interval in milliseconds, set to 0 to disable
this.heartbeatIncoming = 0; // Typical value 0 - disabled
this.heartbeatOutgoing = 20000; // Typical value 20000 - every 20 seconds
// Wait in milliseconds before attempting auto reconnect
// Set to 0 to disable
// Typical value 500 (500 milli seconds)
this.reconnectDelay = 5000;
// Will log diagnostics on console
// It can be quite verbose, not recommended in production
// Skip this key to stop logging to console
this.debug = (msg: string): void => {
console.log(new Date(), msg);
};
console.log('Constructor ' + this.connectHeaders);
this.beforeConnect = (): Promise<void> => {
return new Promise<void>((resolve, reject) => {
this.userService.currentToken.subscribe(token => {
console.log('Subscribed');
if (token) {
console.log('Resolved ' + token);
this.connectHeaders = { Authorization: `Bearer ${token}`};
resolve();
}
});
});
};
}
Я беру токен из службы, которая выполняет аутентификацию и устанавливает токен
Это метод currentToken:
get currentToken(): Observable<string> {
return this.$token.asObservable();
}
Может ли кто-нибудь помочь мне в этом?
this
всегда указывает на то, что вы ожидаете? - person Stuck   schedule 04.04.2020