bitburner-filesync/src/networking/webSocket.js
2022-09-30 06:03:03 +00:00

28 lines
745 B
JavaScript

import { WebSocketServer } from 'ws'
import { config } from '../config.js'
import { EventType } from '../eventTypes.js'
// import { requestDefinitionFile } from './messageGenerators.js'
import { messageTracker } from './messageTracker.js'
export function setupSocket (signaller) {
const wss = new WebSocketServer({ port: config.get('port') })
wss.on('connection', function connection (ws) {
function sendMessage (msg) {
messageTracker.push(msg)
ws.send(JSON.stringify(msg))
}
ws.on('message', (msg) => {
signaller.emit(EventType.MessageReceived, msg)
})
signaller.on(EventType.MessageSend, msg => {
sendMessage(msg)
})
signaller.trigger(EventType.ConnectionMade)
})
return wss
}