Добрый день, нужно из разных компонентов на разных уровнях подписаться на WebSocket.
Где мне стоит выполнить подключение?
У меня 2 варианта:
1. Использовать контекст, передавая подключение
2. Подключение в отдельном файле, а в useEffect компонента подписываться на обновления.
Но найти хороших примеров, где не тяп ляп "щас вот в useEffect все по быстрому настроим", я не нашел.
Не понятно как и где стоит делать обработку ошибок, обрыв соединения и тп.
Подскажите пожалуйста, может быть у кого-то есть какие-то наработки, либо видел github проекты качественные, а не обрубок "работает и ладно, сойдет".
Как обычно организовывают работу с ws, где хранят подключения, как передают компонентам, как обрабатывают отключение ?
Зависит от размера проекта и дальнейшей поддержки. Если раз-два-плюнуть, то хоть через `window.ws = new WebSocket()`. Если уже нужно что-то более лаконичное, то я бы постарался максимально изолировать подключение к сокету от компонентов. Сделал бы так, чтобы какой-нибудь контекст прокидывал лишь бизнес-методы компонентам. А саму работу с сокетом делал под капотом, скрывая это от компонентов.