37 lines
869 B
JavaScript
37 lines
869 B
JavaScript
import {WebSocketServer, WebSocket} from 'ws'
|
|
|
|
const wss = new WebSocketServer({port: 8081})
|
|
|
|
// connection event
|
|
|
|
/**
|
|
* Connection types
|
|
* 0: connecting
|
|
* 1: open (the only state where you can safely .send())
|
|
* 2: Closing
|
|
* 3: closed
|
|
*/
|
|
|
|
wss.on('connection', (s, r)=>{
|
|
const ip = r.socket.remoteAddress
|
|
|
|
s.on('message', (rawData)=>{
|
|
const message = rawData.toString()
|
|
console.log({rawData})
|
|
|
|
wss.clients.forEach((client)=>{
|
|
// can use readyState to be === 1 or WebSocket.OPEN they mean the same thing
|
|
if(client.readyState === WebSocket.OPEN) client.send(`Server Broadcast: ${message}`)
|
|
})
|
|
})
|
|
|
|
s.on("error", ()=>{
|
|
console.error(`Error: ${err.message}: ${ip}`)
|
|
})
|
|
|
|
s.on('close', ()=>{
|
|
console.log('Client Disconnected')
|
|
})
|
|
})
|
|
|
|
console.log("Server Running on 8081") |