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