@Devastor
I ❤❤❤ JAVASCRIPT

Как правильно переподписываться на сокет для защиты от обрывов?

Использую библиотеку socketIo
Вот так подключаюсь к сокету и слушаю:
socketIo.emit('subscribe', 'message');
socketIo.on('message', function (data) {
//
});

В случае разрыва соеденения, после повторного соединения больше не происходить подписки
Можно конечно вылечить так:
socketIo.on('connect', function (data) {
     socketIo.emit('subscribe', 'message');
});
socketIo.emit('subscribe', 'message');
socketIo.on('message', function (data) {
//
});

Но это какой то костыль. Везде придётся прописывать по два раза одно и тоже.
Как сделать что бы в момент коннекта возобновлялись автоматом все подписки?
Подскажите пожалуйста красивую реализацию
  • Вопрос задан
  • 264 просмотра
Решения вопроса 1
affka
@affka
http://affka.ru
Делайте обертку и дописывайте свой "костыль". SocketIO (как и sockjs) не предлагает подобного решения из коробки, так что каждый дописывает по своей необходимости.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
DangelZM
@DangelZM
Может так?
socketIo.on('disconnect', function () {
     socketIo.on('connect', function (data) {
         socketIo.emit('subscribe', 'message');
     });
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы