Olá, mundo!

Crie um arquivo chamado app.js e insira o código a seguir para configurar um aplicativo expresso -

var app = require('express')();
var http = require('http').Server(app);

app.get('/', function(req, res) {
   res.sendfile('index.html');
});

http.listen(3000, function() {
   console.log('listening on *:3000');
});

Vamos precisar de um arquivo index.html para servir, criar um novo arquivo chamado index.html e inserir o código a seguir:

<!DOCTYPE html>
<html>
   <head>
      <title>Hello world</title>
   </head>
   <body>Hello world</body>
</html>

Para testar se isso funciona, vá para o terminal e execute este aplicativo usando o seguinte comando -

nodemon app.js

Isso executará o servidor no localhost: 3000. Vá para o navegador e digite localhost: 3000 para verificar isso.

Isso configura nosso aplicativo expresso e agora está servindo um arquivo HTML na rota raiz. Agora, precisaremos do Socket.IO e registraremos "Um usuário conectado", toda vez que um usuário acessar esta página e "Um usuário desconectado", toda vez que alguém sair / fechar esta página.

var app = require('express')();
var http = require('http').Server(app);
var io = require('socket.io')(http);

app.get('/', function(req, res) {
   res.sendfile('index.html');
});

//Whenever someone connects this gets executed
io.on('connection', function(socket) {
   console.log('A user connected');

   //Whenever someone disconnects this piece of code executed
   socket.on('disconnect', function () {
      console.log('A user disconnected');
   });
});

http.listen(3000, function() {
   console.log('listening on *:3000');
});

O require ('socket.io') (http) cria uma nova instância do socket.io conectada ao servidor http. O manipulador de eventos io.on manipula eventos de conexão, desconexão etc., usando o objeto de soquete.

Configuramos nosso servidor para registrar mensagens em conexões e desconexões. Agora temos que incluir o script do cliente e inicializar o objeto socket, para que os clientes possam estabelecer conexões quando necessário. O script é servido pelo nosso servidor io em '/socket.io/socket.io.js' .

Depois de concluir o procedimento acima, o arquivo index.html terá a seguinte aparência -

<!DOCTYPE html>
<html>
   <head>
      <title>Hello world</title>
   </head>
   <script src = "/socket.io/socket.io.js"></script>
   
   <script>
      var socket = io();
   </script>
   <body>Hello world</body>
</html>

Se você for para o localhost: 3000 agora (verifique se o servidor está em execução), o Hello World será impresso no seu navegador. Agora verifique os logs do console do servidor, ele mostrará a seguinte mensagem -

A user connected

Se você atualizar o navegador, ele desconectará a conexão do soquete e recriará. Você pode ver o seguinte nos logs do console -

A user connected
A user disconnected
A user connected

Agora temos conexões de soquete funcionando. É assim que é fácil configurar conexões no Socket.IO.