TCP de (Transmission Control Protocol) é um protocolo robusto e eficiente da quarta camada do modelo OSI, a camada de transporte, e sobre qual a maioria dos serviços aos quais a internet está montada como o SSH, FTP e o HTTP. Tornou-se apropriado para a grande rede por se tratar de um protocolo que verifica se os dados estão sendo enviados da forma correta, na sequência, e sem erros.
net.js é um pacote que integra o core do framework Node.JS, foi e é especificamente desenvolvido e aprimorado para trabalhar com conexões TCP utilizando Javascript. Vou explicar o uso deste pacote através da criação de um Chat que será acessado via terminal com uso de um protocolo de aplicação, como por exemplo o TELNET, um dos protocolos que utiliza o TCP como protocolo de transporte.
Como destaque no código temos:
Outros pontos importantes são, os handlers de eventos do objeto net.
Por fim, basta configurar em qual porta o servidor deverá ficar escutando por conexões
Com esses métodos e ajuda do método .write(dados) do objeto client, que serve para enviar mensagens para o cliente em questão. Implementei um sistema de broadcast e de desconexão para o chat, agora, fiquem a vontade para aprimorar o código como melhor lhes servires.
Para brincar com o Chat
Abra o terminal ou algum programa grafico que manipule o TELNET e configure:
Host: localhost or 127.0.0.1 na Porta: 8000
comando: > telnet localhost 8000
net.js é um pacote que integra o core do framework Node.JS, foi e é especificamente desenvolvido e aprimorado para trabalhar com conexões TCP utilizando Javascript. Vou explicar o uso deste pacote através da criação de um Chat que será acessado via terminal com uso de um protocolo de aplicação, como por exemplo o TELNET, um dos protocolos que utiliza o TCP como protocolo de transporte.
// Instanciar o pacote para trabalhar com o TCP, o "net.js" var net = require("net"); // Criando um array para guardar todos os clientes "sockets" conectados var listaClientes = []; var ids = 0 // Criando um servidor a partir de um objeto "net" var servidor = net.createServer(function(cliente){ // Adicionando todos os clientes que se conectarem ao servidor ao array listaClientes cliente.id = ids++ listaClientes.push(cliente); // Enviando uma mensgem aos clientes que acabam de se conectar cliente.write("Bem vindo ao Chat!\n"); // Evento acionado sempre que um cliente conecta-se ao servidor cliente.on("connect", function(){ //imprimindo no servidor o id do cliente conectado console.log(cliente.id+" conectado!"); }); // Evento acionado sempre que alguém envia dados ao servidor cliente.on("data", function(dados){ // Cirando um mecanismo de logout if(String(dados).match(/sair/)){ //Desconectando o cliente cliente.end(); } // Implementação de um broadcast for(var i=0; i < listaClientes.length; i++){ // Impedindo que um dado seja enviado para quem o enviou if(listaClientes[i] == cliente){ continue; } // Enviando o dado para o referido cliente na posição i do array listaClientes[i].write(dados); } }); // Evento acionado sempre que um cliente desconecta-se do servidor cliente.on("end", function(){ //achando a posição do cliente que desconectou no array var i = listaClientes.indexOf(cliente); //retirando o cliente da lista listaClientes.splice(i, 1); //imprimindo uma mensagem que o cliente com este id desconectou-se console.log(cliente.id+" desconectado!"); }); }); //configurando a porta a qual este servidor deve ficar escutando servidor.listen(8000); //imprimindo um aviso que o servidor está rodando console.log("Servidor TCP conectado em 127.0.0.1 porta 8000, aguardando conexões!!!");
Como destaque no código temos:
// Criar uma instância do pacote var net = require("net"); // Criar um servidor a partir do objeto net // Note que o parametro do calback "cliente" será o objeto recipiente de cada usuário que se conectar ao chat var servidor = net.createServer(function(cliente){});
Outros pontos importantes são, os handlers de eventos do objeto net.
// Evento acionado sempre que um cliente conecta-se ao servidor cliente.on("connect", function(){}); // Evento acionado sempre que alguém envia dados ao servidor // Note que o parametro "dados" é o recipiente de cada mensagem do respectivo usuário cliente.on("data", function(dados){}); // Evento acionado sempre que um cliente desconecta-se do servidor cliente.on("end", function(){});
Por fim, basta configurar em qual porta o servidor deverá ficar escutando por conexões
//configurando a porta a qual este servidor deve ficar escutando servidor.listen(8000);
Com esses métodos e ajuda do método .write(dados) do objeto client, que serve para enviar mensagens para o cliente em questão. Implementei um sistema de broadcast e de desconexão para o chat, agora, fiquem a vontade para aprimorar o código como melhor lhes servires.
Para brincar com o Chat
Abra o terminal ou algum programa grafico que manipule o TELNET e configure:
Host: localhost or 127.0.0.1 na Porta: 8000
comando: > telnet localhost 8000
net.js - Um pacote Node.JS para trabalhar com TCP
Reviewed by AJ Alves
on
terça-feira, setembro 11, 2012
Rating:
Nenhum comentário:
Postar um comentário