ncare adlı üyeden alıntı: mesajı görüntüle
https://www.npmjs.com/package/socket.io adresinde aslında yeterince açık.
mantığı basit aslında. server side ve client side. 2 şekilde ele alacaksınız.
server'a yukarıdaki paketi kurun.
dökümandaki şu ifade server side'dır
const server = require('http').createServer();
const io = require('socket.io')(server);
io.on('connection', client => {
client.on('event', data => { /* … */ });
client.on('disconnect', () => { /* … */ });
});
server.listen(3000);
3000 portuna sahip bir server kuruyorsunuz. http://IP:3000 gibi. IP yerine domainde olabilir.

Sonra websayfanızda (client side)
<script src='https://IP:3000//socket.io/socket.io.js'  onload='baglan()'></script>
<script>
var socket={connected:false}
function baglan() {
    var url='https://IP:3000';
    var options={ 'reconnect': true,
    reconnectionDelay: 500,
    reconnectionAttempts:"Infinity,reconnectionDelayMax:1250}
    socket = io.connect(url,options);
    socket.on("connect",function() {
        console.log("Socket Bağlandı!")
    })
}
</script>
Mesaj göndermek için yukarıdaki koda göre:
server side'ta client.emit("dinleyici","mesaj")
client side'ta socket.emit("dinleyici","mesaj")
mesajı almak için ise tabii listener lazım.
server side'ta yukarıdaki gibi:
client.on('event', data => { /* … */ }); satırının altına üstüne farketmez ama 'connection' listenerın içine.
client.on('dinleyici', data => { /* … */ }); data gelen mesajdır.
bu client side içinde aynı
socket.on("dinleyici", data => {})

gibi. fikir vermiştir umarım. dikkat etmen gereken durumlar 3000 portunu açmak. secure bağlantı için ben letsenrypt ile pfx oluşturuyorum.

biraz inceleyin, kurcalayın, karıştırın. takıldığınız yerde bilgim dahilinde buradan yardımcı olmaya çalışırım.
Websocket ve socket.io farklı şeyler, karıştırmayalım