Впервые пришлось столкнуться с сокетами и возникли вопросы касаемо правильного его использования.
Есть у меня, допустим, приложение чата с авторизацией.
1) Мне нужен сокет для всех юзеров для отображения обновляемого онлайна пользователей.
2) Мне нужен сокет для залогиненных юзеров, что бы обрабатывать получение - отправку сообщений.
Это правильнее делать подключением разных инстансов сокета на разные адреса? Или просто в сокет добавить какой-то ивент authorize, после которого становятся доступными дополнительные слушатели, ивенты и тд?
И ещё непонятно на данный момент, какую логику необходимо пихать в сокеты.
При загрузке чата - мне сначала необходимо получить список всех сообщений в чате, которые были до момента моего захода. Это делать правильно тоже через сокет, или через обычный запрос к апи?
Дык это же вопрос лично вашего предпочтения и личной реализации архитектуры. Вопрос не содержит "вопроса", как ни смешно бы это звучало. Данный топик скорее звучит "Как мне создать мое приложение".
Сейчас Вы находитесь на стадии проектирования, по всей видимости.
На данный момент Вам и предстоит заняться самым важным для разработчика - созданием архитектуры. Возьмите листочек(мне сильно помогает) и постарайтесь продумать мелочи и прочитать документацию к существующим инструментам. Больше инфы об инструментах = больше вариантов исполнения приложения. А когда начнут всплывать точечные вопросы, в которых вы не сведуете или необходима помощь в поиске наилучшего решения - велком.
Если я не ошибаюсь, у socket.io есть встроенная фича с рутами(route), она вам может помочь представить real-time в духе REST.
Один рут на обновление общей инфы, другой рут на авторизацию, третий рут отправку сообщений.
Из неплохих вариантов будет просмотреть крупные оупенсоурсы, на гитхабе например.
Насчет загрузки сообщений - старайтесь привести часть программы к одному общему стилю.
Если у Вас real-time приложение, то пусть будет получение через сокеты.