SignalR в ReactJS - работа с одним и тем же hubConnection в разных компонентах - PullRequest
0 голосов
/ 07 мая 2019

Я новичок в React и совсем недавно начал интегрировать SignalR в веб-приложение React.

SignalR работает нормально, но я сначала подумал, что у меня может быть какой-то класс службы / помощника, который будет создавать экземпляр концентраторного соединения, чтобы я мог использовать один и тот же класс для нескольких компонентов, но, к сожалению, и, как я понимаю, React , вы должны обрабатывать все как «на основе компонентов» и внутри состояний компонентов.

- Как лучше всего работать с SignalR, не создавая несколько соединений с одним и тем же концентратором?

- Как работать с одним соединением в разных компонентах? Должны ли мы создавать одно соединение на уровне компонентов приложения и передавать его каждому другому компоненту как опору, или есть другой подход?

1 Ответ

0 голосов
/ 08 мая 2019

Я недавно создал плагин React для моей библиотеки SignalR.https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy

Я сделал это как HOC (Компонент высшего порядка) https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/wiki/React-Client

Для меня это очень удобно, потому что тогда пользователи могут автоматически отписаться, когда компонент убит.

componentWillUnmount() {
    signalR.eventAggregator.unsubscribe(this.myRef.current);
}

HOC - это здорово, так как вы можете контролировать время жизни

https://github.com/AndersMalmgren/SignalR.EventAggregatorProxy/blob/master/SignalR.EventAggregatorProxy.Client.React/signalR.eventAggregator.react.jsx

...