io.of('/user-notifications')
.use(authenticateSocket)
.on('connection', socket => {
- const userId = socket.handshake.query.user.id
+ const userId = socket.handshake.auth.user.id
logger.debug('User %d connected on the notification system.', userId)
socket.on('subscribe', ({ videoId }) => {
if (!isIdValid(videoId)) return
+ /* eslint-disable @typescript-eslint/no-floating-promises */
socket.join(videoId)
})
socket.on('unsubscribe', ({ videoId }) => {
if (!isIdValid(videoId)) return
+ /* eslint-disable @typescript-eslint/no-floating-promises */
socket.leave(videoId)
})
})
const data: LiveVideoEventPayload = { state: video.state }
const type: LiveVideoEventType = 'state-change'
- logger.debug('Sending video live new state notification of %s.', video.url)
+ logger.debug('Sending video live new state notification of %s.', video.url, { state: video.state })
+
+ this.liveVideosNamespace
+ .in(video.id)
+ .emit(type, data)
+ }
+
+ sendVideoViewsUpdate (video: MVideo) {
+ const data: LiveVideoEventPayload = { views: video.views }
+ const type: LiveVideoEventType = 'views-change'
+
+ logger.debug('Sending video live views update notification of %s.', video.url, { views: video.views })
this.liveVideosNamespace
.in(video.id)