Files
welshman/src/Relay.ts
T
2023-07-27 08:40:39 -07:00

24 lines
492 B
TypeScript

import {EventEmitter} from 'events'
export class Relay extends EventEmitter {
constructor(socket) {
super()
this.socket = socket
this.socket.on('receive', this.onMessage)
}
get sockets() {
return [this.socket]
}
send(...payload) {
this.socket.send(payload)
}
onMessage = (socket, [verb, ...payload]) => {
this.emit(verb, socket.url, ...payload)
}
cleanup = () => {
this.removeAllListeners()
this.socket.off('receive', this.onMessage)
}
}