Desenvolvedores de software eventualmente estão envolvidos com algum tipo de solução baseada em socket, principalmente utilizando um cliente para conexão com um server socket.

Com o objetivo de criar um server socket simples, criei um servidor utilizando o NodeJS que me auxilia quando desejo visualizar as mensagens disparadas pelo cliente que estou desenvolvendo e como essa mensagem esta sendo recebida no servidor.

Caso queira conhecer mais sobre o NodeJS, veja o post sobre como acessar comandos do linux usando NodeJS.

Partindo do princípio que o NodeJS esta instalado ( o mesmo pode ser baixado aqui ). Será preciso criar dois arquivos:

1 – Um arquivo javascript (.JS) que contém a lógica do server.

Exemplo de código

// Load the TCP Library
net = require(‘net’);

//Porta para conexao
var porta = 29298;

// Lista de clientes
var clientes = [];

// Inicia o TCP Server
net.createServer(function (socket) {
// Identifica o socket
socket.name = socket.remoteAddress + “:” + socket.remotePort

// Adiciona o socket a lista de clientes
clientes.push(socket);

// Envia uma mensagem de conexao
socket.write(“Cliente ” + socket.name + ” conectado com sucesso\n”);

// Avisa aos demais clientes que um novo cliente foi conectado
broadcast(socket.name + ” conectado\n”, socket);

// Listener de requisicoes dos clientes
socket.on(‘data’, function (data) {
broadcast(data,socket);
});

// Trata a desconexao do cliente
socket.on(‘end’, function () {
clientes.splice(clientes.indexOf(socket), 1);
broadcast(socket.name + ” Desconectou\n”);
});

// Trata possiveis erros na conexao
socket.on(“error”, function () {
console.log(“\n Cliente desconectao por erro “);
clientes.splice(clientes.indexOf(socket), 1);
});

// Envia mensagem para todos os clientes
function broadcast(message, sender) {
clientes.forEach(function (cliente) {
// Tratamento para nao enviar a mesma mensagem a quem originou
if (cliente === sender) return;
cliente.write(message);
});
// Envia a mensagem na console
process.stdout.write(message)
}

}).listen(porta);

// Informa na console que o servidor esta em operacao.
console.log(“Servidor em execucao na porta :”+porta+”\n”);

socketServer.js

2 – Um arquivo para o iniciar o nodeJS, sem a necessidade de digitar. Podendo ser um arquivo .bat ou um shell script com o comando abaixo.

node socketServer.js

Exemplo de execução do socket server
Exemplo de execução do socket server

Até!

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.