feat: combine task with stage

This commit is contained in:
wancat committed 2023-09-01 14:56:28 +08:00
1 parent de8d49aea3
commit dd7829b3e9
8 files changed
+127 -54

No files matched your search

+10 -10
View File
@@ -5,9 +5,9 @@ import { defaultUser, genSessionJWT } from '../utils/auth.js'
const sessions = new Map()
function listenToSession(sessionId, event, callback) {
const callbacks = sessions.get((sessionId, event)) || []
sessions.set((sessionId, event), callbacks.concat(callback))
function listenToSession(sessionId, callback) {
const callbacks = sessions.get(sessionId) || []
sessions.set(sessionId, callbacks.concat(callback))
}
function removeFromSession(sessionId, event, callback) {
@@ -18,10 +18,10 @@ function removeFromSession(sessionId, event, callback) {
)
}
export function pushToSession(sessionId, event, data) {
const callbacks = sessions.get((sessionId, event))
export function pushToSession(sessionId, ...args) {
const callbacks = sessions.get(sessionId)
if (callbacks) {
callbacks.forEach((callback) => callback(data))
callbacks.forEach((callback) => callback(...args))
}
}
@@ -68,16 +68,16 @@ async function connectClient(socket) {
stream.socket.write(message)
})
const graphCallback = (data) => {
socket.emit('graph', data)
const socketCallback = (event, data) => {
socket.emit(event, data)
}
listenToSession(session.id, 'graph', graphCallback)
listenToSession(session.id, socketCallback)
socket.on('disconnect', () => {
console.log('Disconnected from the client.')
stream.socket.write('exit\n')
removeFromSession(session.id, 'graph', graphCallback)
removeFromSession(session.id, socketCallback)
stream.destroy()
})