Websocket


Example

server

const WebSocket = require('ws')
const wss = new WebSocket.Server({ port: 9000 })
 
wss.on('connection', ws => {
  ws.on('message', message => {
    console.log(`(server) received message => ${message}`)
    ws.send(JSON.stringify({type: 'greeting', payload: 'hello world'}))
  })
})

client

const WebSocket = require('ws')
const url = 'ws://localhost:9000'
const connection = new WebSocket(url)
 
connection.onopen = () => {
  connection.send('Message From Client') 
}
 
connection.onerror = (error) => {
  console.log(`WebSocket error: ${error.message()}`)
}
 
connection.addEventListener('message', (e) => {
    console.log(`(client)`, JSON.parse(e.data))
}, false)

Events (opens in a new tab)

Writing WebSocket servers

  1. handshake
  2. exchange dataframes
  3. ping/pong (heartbeat)
  4. close conn

client/server impl

https://www.npmjs.com/package/ws (opens in a new tab)