Node.js - Módulo de rede
Node.js netmódulo é usado para criar servidores e clientes. Este módulo fornece um wrapper de rede assíncrono e pode ser importado usando a seguinte sintaxe.
var net = require("net")
Métodos
Sr. Não. | Método e Descrição |
---|---|
1 | net.createServer([options][, connectionListener]) Cria um novo servidor TCP. O argumento connectionListener é definido automaticamente como um ouvinte para o evento 'conexão'. |
2 | net.connect(options[, connectionListener]) Um método de fábrica, que retorna um novo 'net.Socket' e se conecta ao endereço e porta fornecidos. |
3 | net.createConnection(options[, connectionListener]) Um método de fábrica, que retorna um novo 'net.Socket' e se conecta ao endereço e porta fornecidos. |
4 | net.connect(port[, host][, connectListener]) Cria uma conexão TCP para a porta no host. Se host for omitido, 'localhost' será assumido. O parâmetro connectListener será adicionado como um ouvinte para o evento 'conectar'. É um método de fábrica que retorna um novo 'net.Socket'. |
5 | net.createConnection(port[, host][, connectListener]) Cria uma conexão TCP para a porta no host. Se host for omitido, 'localhost' será assumido. O parâmetro connectListener será adicionado como um ouvinte para o evento 'conectar'. É um método de fábrica que retorna um novo 'net.Socket'. |
6 | net.connect(path[, connectListener]) Cria uma conexão de socket Unix para o caminho. O parâmetro connectListener será adicionado como um ouvinte para o evento 'conectar'. É um método de fábrica que retorna um novo 'net.Socket'. |
7 | net.createConnection(path[, connectListener]) Cria uma conexão de socket Unix para o caminho. O parâmetro connectListener será adicionado como um ouvinte para o evento 'conectar'. É um método de fábrica que retorna um novo 'net.Socket'. |
8 | net.isIP(input) Testa se a entrada é um endereço IP. Retorna 0 para strings inválidas, 4 para endereços IP da versão 4 e 6 para endereços IP da versão 6. |
9 | net.isIPv4(input) Retorna verdadeiro se a entrada for um endereço IP da versão 4; caso contrário, retorna falso. |
10 | net.isIPv6(input) Retorna verdadeiro se a entrada for um endereço IP da versão 6; caso contrário, retorna falso. |
Classe - net.Server
Esta classe é usada para criar um servidor TCP ou local.
Métodos
Sr. Não. | Método e Descrição |
---|---|
1 | server.listen(port[, host][, backlog][, callback]) Comece a aceitar conexões na porta e no host especificados. Se o host for omitido, o servidor aceitará conexões direcionadas a qualquer endereço IPv4 (INADDR_ANY). Um valor de porta igual a zero atribuirá uma porta aleatória. |
2 | server.listen(path[, callback]) Inicie um servidor de soquete local ouvindo conexões no caminho fornecido. |
3 | server.listen(handle[, callback]) O objeto identificador pode ser definido como um servidor ou soquete (qualquer coisa com um membro _handle subjacente) ou um objeto {fd: <n>}. Isso fará com que o servidor aceite conexões no identificador especificado, mas presume-se que o descritor de arquivo ou identificador já foi vinculado a uma porta ou soquete de domínio. Ouvir em um descritor de arquivo não é compatível com o Windows. |
4 | server.listen(options[, callback]) As propriedades das opções de porta, host e lista de pendências, bem como a função de retorno de chamada opcional, se comportam como em uma chamada para server.listen (porta, [host], [lista de pendências], [retorno de chamada]). Como alternativa, a opção de caminho pode ser usada para especificar um soquete UNIX. |
5 | server.close([callback]) Finalmente fechado quando todas as conexões são encerradas e o servidor emite um evento 'close'. |
6 | server.address() Retorna o endereço vinculado, o nome da família do endereço e a porta do servidor, conforme relatado pelo sistema operacional. |
7 | server.unref() Chamar unref em um servidor permitirá que o programa saia se este for o único servidor ativo no sistema de eventos. Se o servidor já estiver unrefd, chamar unref novamente não terá efeito. |
8 | server.ref() Ao contrário de unref, chamar ref em um servidor anteriormente não refd não deixará o programa sair se for o único servidor restante (o comportamento padrão). Se o servidor for refd, chamar o ref novamente não terá efeito. |
9 | server.getConnections(callback) Obtenha de maneira assíncrona o número de conexões simultâneas no servidor. Funciona quando os soquetes são enviados para garfos. O retorno de chamada deve ter dois argumentos err e contar. |
Eventos
Sr. Não. | Eventos e Descrição |
---|---|
1 | listening Emitido quando o servidor foi vinculado após chamar server.listen. |
2 | connection Emitido quando uma nova conexão é feita. Objeto de soquete, o objeto de conexão está disponível para o manipulador de eventos. Socket é uma instância de net.Socket. |
3 | close Emitido quando o servidor fecha. Observe que, se houver conexões, esse evento não será emitido até que todas as conexões sejam encerradas. |
4 | error Emitido quando ocorre um erro. O evento 'fechar' será chamado diretamente após este evento. |
Classe - net.Socket
Este objeto é uma abstração de um TCP ou socket local. As instâncias net.Socket implementam uma interface Stream duplex. Eles podem ser criados pelo usuário e usados como um cliente (com connect ()) ou podem ser criados pelo Node e passados para o usuário através do evento 'conexão' de um servidor.
Eventos
net.Socket é um eventEmitter e emite os seguintes eventos.
Sr. Não. | Eventos e Descrição |
---|---|
1 | lookup Emitido após resolver o nome do host, mas antes de conectar. Não aplicável a soquetes UNIX. |
2 | connect Emitido quando uma conexão de soquete é estabelecida com sucesso. |
3 | data Emitido quando os dados são recebidos. Os dados do argumento serão um Buffer ou String. A codificação dos dados é definida por socket.setEncoding (). |
4 | end Emitido quando a outra extremidade do soquete envia um pacote FIN. |
5 | timeout Emitido se o soquete atingir o tempo limite de inatividade. Isso é apenas para notificar que o soquete está ocioso. O usuário deve fechar manualmente a conexão. |
6 | drain Emitido quando o buffer de gravação fica vazio. Pode ser usado para acelerar uploads. |
7 | error Emitido quando ocorre um erro. O evento 'fechar' será chamado diretamente após este evento. |
8 | close Emitido assim que o encaixe estiver totalmente fechado. O argumento had_error é um booleano que indica se o socket foi fechado devido a um erro de transmissão. |
Propriedades
net.Socket fornece muitas propriedades úteis para obter melhor controle sobre as interações de soquete.
Sr. Não. | Descrição da Propriedade |
---|---|
1 | socket.bufferSize Esta propriedade mostra o número de caracteres atualmente armazenados em buffer para serem gravados. |
2 | socket.remoteAddress A representação de string do endereço IP remoto. Por exemplo, '74 .125.127.100 'ou' 2001: 4860: a005 :: 68 '. |
3 | socket.remoteFamily A representação de string da família de IPs remotos. 'IPv4' ou 'IPv6'. |
4 | socket.remotePort A representação numérica da porta remota. Por exemplo, 80 ou 21. |
5 | socket.localAddress A representação de string do endereço IP local ao qual o cliente remoto está se conectando. Por exemplo, se você estiver ouvindo em '0.0.0.0' e o cliente se conectar em '192.168.1.1', o valor será '192.168.1.1'. |
6 | socket.localPort A representação numérica da porta local. Por exemplo, 80 ou 21. |
7 | socket.bytesRead A quantidade de bytes recebidos. |
8 | socket.bytesWritten A quantidade de bytes enviados. |
Métodos
Sr. Não. | Método e Descrição |
---|---|
1 | new net.Socket([options]) Construa um novo objeto de socket. |
2 | socket.connect(port[, host][, connectListener]) Abre a conexão para um determinado soquete. Se a porta e o host forem fornecidos, o soquete será aberto como um soquete TCP; se o host for omitido, será assumido o localhost. Se um caminho for fornecido, o soquete será aberto como um soquete Unix para esse caminho. |
3 | socket.connect(path[, connectListener]) Abre a conexão para um determinado soquete. Se a porta e o host forem fornecidos, o soquete será aberto como um soquete TCP; se o host for omitido, será assumido o localhost. Se um caminho for fornecido, o soquete será aberto como um soquete Unix para esse caminho. |
4 | socket.setEncoding([encoding]) Defina a codificação do soquete como um fluxo legível. |
5 | socket.write(data[, encoding][, callback]) Envia dados no soquete. O segundo parâmetro especifica a codificação no caso de uma string - o padrão é a codificação UTF8. |
6 | socket.end([data][, encoding]) Fecha o soquete pela metade, ou seja, ele envia um pacote FIN. É possível que o servidor ainda envie alguns dados. |
7 | socket.destroy() Garante que nenhuma atividade de E / S ocorra neste soquete. Necessário apenas em caso de erros (erro de análise ou algo assim). |
8 | socket.pause() Pausa a leitura dos dados. Ou seja, eventos de 'dados' não serão emitidos. Útil para reduzir um upload. |
9 | socket.resume() Retoma a leitura após uma chamada para pausar (). |
10 | socket.setTimeout(timeout[, callback]) Define o tempo limite do soquete após o tempo limite em milissegundos de inatividade no soquete. Por padrão, net.Socket não tem um tempo limite. |
11 | socket.setNoDelay([noDelay]) Desativa o algoritmo Nagle. Por padrão, as conexões TCP usam o algoritmo Nagle, armazenam os dados em buffer antes de enviá-los. Configurar true para noDelay irá disparar dados imediatamente toda vez que socket.write () for chamado. O padrão noDelay é verdadeiro. |
12 | socket.setKeepAlive([enable][, initialDelay]) Habilite / desabilite a funcionalidade keep-alive e, opcionalmente, defina o atraso inicial antes que o primeiro probe keep-alive seja enviado em um soquete ocioso. ativar os padrões para falso. |
13 | socket.address() Retorna o endereço vinculado, o nome da família do endereço e a porta do soquete conforme relatado pelo sistema operacional. Retorna um objeto com três propriedades, por exemplo, {port: 12346, family: 'IPv4', address: '127.0.0.1'}. |
14 | socket.unref() Chamar unref em um socket permitirá que o programa saia se este for o único socket ativo no sistema de eventos. Se o soquete já não tiver sido refd, chamar unref novamente não terá efeito. |
15 | socket.ref() Ao contrário de unref, chamar ref em um soquete anteriormente não refd não permitirá que o programa saia se for o único soquete restante (o comportamento padrão). Se o socket for refd, chamar ref novamente não terá efeito. |
Exemplo
Crie um arquivo js chamado server.js com o seguinte código -
Arquivo: server.js
var net = require('net');
var server = net.createServer(function(connection) {
console.log('client connected');
connection.on('end', function() {
console.log('client disconnected');
});
connection.write('Hello World!\r\n');
connection.pipe(connection);
});
server.listen(8080, function() {
console.log('server is listening');
});
Agora execute o server.js para ver o resultado -
$ node server.js
Verifique a saída.
server is listening
Crie um arquivo js chamado client.js com o seguinte código -
File: client.js
var net = require('net');
var client = net.connect({port: 8080}, function() {
console.log('connected to server!');
});
client.on('data', function(data) {
console.log(data.toString());
client.end();
});
client.on('end', function() {
console.log('disconnected from server');
});
Agora execute o client.js de outro terminal para ver o resultado -
$ node client.js
Verifique a saída.
connected to server!
Hello World!
disconnected from server
Verifique a saída no terminal em que server.js está sendo executado.
server is listening
client connected
client disconnected