mirror of
https://github.com/the1812/Bilibili-Evolved.git
synced 2025-11-04 21:22:45 +08:00
23 lines
633 B
TypeScript
23 lines
633 B
TypeScript
import { WebSocketServer } from 'ws'
|
|
import { devServerConfig } from './config'
|
|
import { Payload } from './payload'
|
|
|
|
let server: WebSocketServer
|
|
|
|
export const sendMessage = (message: Payload) => {
|
|
if (!server) {
|
|
return
|
|
}
|
|
const text = JSON.stringify(message)
|
|
server.clients.forEach(client => {
|
|
client.send(text)
|
|
})
|
|
}
|
|
export const startWebSocketServer = () => new Promise<void>((resolve, reject) => {
|
|
const { port } = devServerConfig
|
|
server = new WebSocketServer({ port })
|
|
server.on('close', () => sendMessage({ type: 'stop' }))
|
|
server.on('listening', () => resolve())
|
|
server.on('error', () => reject())
|
|
})
|