mirror of
https://github.com/cpvalente/ontime.git
synced 2026-08-11 10:23:54 +00:00
V2 fix socket (#296)
* refactor: rename timer endpoint * refactor: typescript * refactor: rename eventData and viewSettings * refactor: message manager uses event store
This commit is contained in:
@@ -6,8 +6,7 @@ import { stringFromMillis } from '../../utils/time.js';
|
||||
import { messageManager } from '../message-manager/MessageManager.js';
|
||||
import { PlaybackService } from '../../services/PlaybackService.js';
|
||||
|
||||
import { ADDRESS_MESSAGE_CONTROL } from './socketConfig.js';
|
||||
import { eventTimer, TimerService } from '../../services/TimerService.ts';
|
||||
import { eventTimer, TimerService } from '../../services/TimerService.js';
|
||||
import { EventLoader, eventLoader } from '../event-loader/EventLoader.js';
|
||||
|
||||
class SocketController {
|
||||
@@ -55,9 +54,7 @@ class SocketController {
|
||||
// keep track of connections
|
||||
this.numClients++;
|
||||
this._clientNames[socket.id] = getRandomName();
|
||||
const message = `${this.numClients} Clients with new connection: ${
|
||||
this._clientNames[socket.id]
|
||||
}`;
|
||||
const message = `${this.numClients} Clients with new connection: ${this._clientNames[socket.id]}`;
|
||||
this.info('CLIENT', message);
|
||||
|
||||
// Todo: review in favour of features
|
||||
@@ -78,9 +75,7 @@ class SocketController {
|
||||
*/
|
||||
socket.on('disconnect', () => {
|
||||
this.numClients--;
|
||||
const message = `${this.numClients} Clients with disconnection: ${
|
||||
this._clientNames[socket.id]
|
||||
}`;
|
||||
const message = `${this.numClients} Clients with disconnection: ${this._clientNames[socket.id]}`;
|
||||
delete this._clientNames[socket.id];
|
||||
this.info('CLIENT', message);
|
||||
});
|
||||
@@ -215,12 +210,10 @@ class SocketController {
|
||||
try {
|
||||
const featureData = messageManager.setOnAir(data);
|
||||
this.info('PLAYBACK', featureData.onAir ? 'Going On Air' : 'Going Off Air');
|
||||
this.socket.emit(ADDRESS_MESSAGE_CONTROL, featureData);
|
||||
} catch (error) {
|
||||
this.error('RX', `Failed to parse message ${data} : ${error}`);
|
||||
}
|
||||
}
|
||||
this.send('onAir', messageManager.onAir);
|
||||
});
|
||||
|
||||
// Presenter message
|
||||
@@ -228,16 +221,14 @@ class SocketController {
|
||||
if (typeof data !== 'string') {
|
||||
return;
|
||||
}
|
||||
const featureData = messageManager.setTimerText(data);
|
||||
this.socket.emit(ADDRESS_MESSAGE_CONTROL, featureData);
|
||||
messageManager.setTimerText(data);
|
||||
});
|
||||
|
||||
socket.on('set-timer-message-visible', (data) => {
|
||||
if (typeof data !== 'boolean') {
|
||||
return;
|
||||
}
|
||||
const featureData = messageManager.setTimerVisibility(data);
|
||||
this.socket.emit(ADDRESS_MESSAGE_CONTROL, featureData);
|
||||
messageManager.setTimerVisibility(data);
|
||||
});
|
||||
|
||||
/*******************************************/
|
||||
@@ -246,16 +237,14 @@ class SocketController {
|
||||
if (typeof data !== 'string') {
|
||||
return;
|
||||
}
|
||||
const featureData = messageManager.setPublicText(data);
|
||||
this.socket.emit(ADDRESS_MESSAGE_CONTROL, featureData);
|
||||
messageManager.setPublicText(data);
|
||||
});
|
||||
|
||||
socket.on('set-public-message-visible', (data) => {
|
||||
if (typeof data !== 'boolean') {
|
||||
return;
|
||||
}
|
||||
const featureData = messageManager.setPublicVisibility(data);
|
||||
this.socket.emit(ADDRESS_MESSAGE_CONTROL, featureData);
|
||||
messageManager.setPublicVisibility(data);
|
||||
});
|
||||
|
||||
/*******************************************/
|
||||
@@ -264,16 +253,14 @@ class SocketController {
|
||||
if (typeof data !== 'string') {
|
||||
return;
|
||||
}
|
||||
const featureData = messageManager.setLowerText(data);
|
||||
this.socket.emit(ADDRESS_MESSAGE_CONTROL, featureData);
|
||||
messageManager.setLowerText(data);
|
||||
});
|
||||
|
||||
socket.on('set-lower-message-visible', (data) => {
|
||||
if (typeof data !== 'boolean') {
|
||||
return;
|
||||
}
|
||||
const featureData = messageManager.setLowerVisibility(data);
|
||||
this.socket.emit(ADDRESS_MESSAGE_CONTROL, featureData);
|
||||
messageManager.setLowerVisibility(data);
|
||||
});
|
||||
|
||||
/* MOLECULAR ENDPOINTS
|
||||
@@ -312,8 +299,9 @@ class SocketController {
|
||||
});
|
||||
|
||||
// 6. TIMER
|
||||
socket.on('get-ontime-timer', () => {
|
||||
this.broadcastTimer();
|
||||
socket.on('get-timer', () => {
|
||||
// TODO: Not ideal workaround
|
||||
socket.emit('timer', eventTimer.timer);
|
||||
});
|
||||
});
|
||||
}
|
||||
@@ -373,7 +361,7 @@ class SocketController {
|
||||
*/
|
||||
broadcastFeatureMessageControl() {
|
||||
const featureData = messageManager.getAll();
|
||||
this.send(ADDRESS_MESSAGE_CONTROL, featureData);
|
||||
this.send('feat-messagecontrol', featureData);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -416,21 +404,14 @@ class SocketController {
|
||||
this.send('feat-cuesheet', featureData);
|
||||
}
|
||||
|
||||
/**
|
||||
* Broadcast Timer feature
|
||||
*/
|
||||
broadcastTimer() {
|
||||
const featureData = eventTimer.timer;
|
||||
this.send('ontime-timer', featureData);
|
||||
}
|
||||
|
||||
// TODO: ouch, services should update the store
|
||||
// make middleware to maintain the features OR remove the feature endpoints
|
||||
broadcastState() {
|
||||
this.broadcastFeatureRundown();
|
||||
this.broadcastFeatureMessageControl();
|
||||
this.broadcastFeaturePlaybackControl();
|
||||
this.broadcastFeatureInfo();
|
||||
this.broadcastFeatureCuesheet();
|
||||
this.broadcastTimer();
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
export const ADDRESS_MESSAGE_CONTROL = 'feat-messagecontrol';
|
||||
Reference in New Issue
Block a user