Implemented saveSettings websocket module
This commit is contained in:
parent
a3ef23b289
commit
7b16ddc91a
@ -1,6 +1,12 @@
|
|||||||
// @ts-expect-error
|
// @ts-expect-error
|
||||||
import deemix from 'deemix'
|
import deemix from 'deemix'
|
||||||
|
|
||||||
export const settings: any = deemix.settings.load()
|
export const loadSettings = deemix.settings.load
|
||||||
export const defaultSettings: any = deemix.settings.DEFAULTS
|
export const defaultSettings: any = deemix.settings.DEFAULTS
|
||||||
export const sessionDZ: any = {}
|
export let settings: any = loadSettings()
|
||||||
|
export let sessionDZ: any = {}
|
||||||
|
|
||||||
|
export function saveSettings(newSettings: any) {
|
||||||
|
deemix.settings.save(newSettings)
|
||||||
|
settings = newSettings
|
||||||
|
}
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
import WebSocket from 'ws'
|
||||||
import { Server as WsServer } from 'ws'
|
import { Server as WsServer } from 'ws'
|
||||||
import { consoleError, consoleInfo } from '../helpers/errors'
|
import { consoleError, consoleInfo } from '../helpers/errors'
|
||||||
import wsModules from './modules'
|
import wsModules from './modules'
|
||||||
@ -5,10 +6,22 @@ import wsModules from './modules'
|
|||||||
// ? Is this needed?
|
// ? Is this needed?
|
||||||
// ? https://github.com/websockets/ws#how-to-detect-and-close-broken-connections
|
// ? https://github.com/websockets/ws#how-to-detect-and-close-broken-connections
|
||||||
|
|
||||||
|
export const broadcast = function(wss:WsServer, key:string, data:any) {
|
||||||
|
wss.clients.forEach(client => {
|
||||||
|
if (client.readyState === WebSocket.OPEN) {
|
||||||
|
client.send(JSON.stringify({key, data}))
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
export const registerWebsocket = (wss: WsServer) => {
|
export const registerWebsocket = (wss: WsServer) => {
|
||||||
wss.on('connection', ws => {
|
wss.on('connection', ws => {
|
||||||
wsModules.forEach(module => {
|
ws.on('message', (message)=>{
|
||||||
ws.on(module.eventName, module.cb)
|
consoleInfo(`received: ${message}`)
|
||||||
|
const data = JSON.parse(message.toString())
|
||||||
|
wsModules.forEach(module => {
|
||||||
|
if (data.key === module.eventName) module.cb(data.data, ws, wss)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -1,9 +0,0 @@
|
|||||||
import { consoleInfo } from '../../helpers/errors'
|
|
||||||
|
|
||||||
const eventName = 'message'
|
|
||||||
|
|
||||||
const cb = (message: string) => {
|
|
||||||
consoleInfo(`received: ${message}`)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default { eventName, cb }
|
|
@ -1,3 +1,3 @@
|
|||||||
import connection from './connection'
|
import saveSettings from './saveSettings'
|
||||||
|
|
||||||
export default [connection]
|
export default [saveSettings]
|
||||||
|
15
server/src/websocket/modules/saveSettings.ts
Normal file
15
server/src/websocket/modules/saveSettings.ts
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import { Server as WsServer } from 'ws'
|
||||||
|
import { consoleInfo } from '../../helpers/errors'
|
||||||
|
import { saveSettings } from '../../main'
|
||||||
|
import { broadcast } from '../index'
|
||||||
|
|
||||||
|
const eventName = 'saveSettings'
|
||||||
|
|
||||||
|
const cb = (data: any, ws: any, wss: WsServer) => {
|
||||||
|
const {settings, spotifySettings} = data
|
||||||
|
saveSettings(settings)
|
||||||
|
consoleInfo('Settings saved')
|
||||||
|
broadcast(wss, 'updateSettings', {settings, spotifySettings})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { eventName, cb }
|
2
webui
2
webui
@ -1 +1 @@
|
|||||||
Subproject commit 9710a5f19f6614fefc760e1771cb67b410ee55de
|
Subproject commit 134c43a85589b64d44c55eca2f645bf4dbfb87bd
|
Loading…
Reference in New Issue
Block a user