GreyCrew
@GreyCrew
Full-stack developer

Как лучше спроектировать eventChannel для получения данных с чата?

Использую redux-saga, есть каналы, которые я принимаю, обернутые в eventChannel
const initSocketChannel = () => eventChannel(emitter => {
  
  socket.on('message', (msg) => {
    const dataEmmit = {value: msg, type: 'message'}
    emitter(dataEmmit)
  })
  
  socket.on('join room', (msg) => {
    const dataEmmit = {value: msg, type: 'join room'}
    emitter(dataEmmit)
  })
  
  socket.on('leave room', (msg) => {
    const dataEmmit = {value: msg, type: 'leave room'}
    emitter(dataEmmit)
  })
  
  socket.on('writing', (msg) => {
    const dataEmmit = {value: msg, type: 'writing'}
    emitter(dataEmmit)
  })
  
  // функция отписки от канала
  return () => {
  
  
  }
})


далее получаю в
export const broadcastSaga = function* () {
  const channel = yield call(initSocketChannel)
  while (true) {
    const message = yield take(channel)
    console.log(message)
  }
}


Как мы видим у меня и получение сообщения и информация о пользователях в комнате находится в одном eventChannel
Вопрос в том, стоит ли для каждой подписки делать отдельный eventChannel, или лучше оставить в одном, и уже по типу определять какое событие слушаю?
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
29 мар. 2024, в 17:04
5000 руб./за проект
29 мар. 2024, в 17:03
3000 руб./за проект
29 мар. 2024, в 16:58
3000 руб./за проект