Arquivo | Programação Web RSS for this section

Conhecendo o Node.js

Bom dia, boa tarde e boa noite pequenos gafanhotos.

Hoje falarei o básico do básico do Node.js. Quem é ele? Para que serve? Onde vive? Do que se alimenta?

Node.js é uma plataforma utilizada para criar aplicações server-side de alta escalabilidade. Ele é capaz de gerir um grande número de requisições simultaneamente como um servidor web, em uma única máquina física. E o mais incrível disso tudo, programando em Javascript! Exato, javascript para o back-end. Node.js utiliza o interpretador V8 de javascript do Chrome para executar todas as suas gambiarras códigos no servidor também.

Node.js is a platform built on Chrome’s JavaScript runtime for easily building fast, scalable network applications. Node.js uses an event-driven, non-blocking I/O model that makes it lightweight and efficient, perfect for data-intensive real-time applications that run across distributed devices.

Podemos começar com uma aplicação simples, então? Criaremos um web server. Primeiro, baixe o Node.js e instale-o aqui. É só seguir as instruções no instalador, extremamente simples:

Imagem

Após a instalação, podemos criar nosso primeiro script para rodar no Node.js. Vamos utilzar o exemplo do próprio site do Node como exemplo:

//Precisaremos do módulo http para esse webserver, então devemos incluí-lo
var http = require('http');

http.createServer(function (req, res) {

  //No Node, precisamos definir o header manualmente de acordo com o tipo de dados que deseja transmitir
  res.writeHead(200, { 'Content-Type': 'text/plain' });

  //Escrevendo o retorno
  res.write("Hello World!");

  //A conexão deve ser fechada manualmente
  res.end();

}).listen(1337, '127.0.0.1');

console.log('Server running at http://127.0.0.1:1337/');

O Node.js utiliza o CommonJS como sistema de modularização. Isso evita o caos que geralmente acontece ao desenvolver com javascript em vários arquivos. Portanto, devemos utilizar o método require para cada novo módulo que necessitarmos. Neste caso, como é um simples web server, utilizaremos apenas o ‘http’.

Salve esse arquivo como hello.js. Após isso, acesse o diretório onde o arquivo está salvo via cmd, e use o comando node hello.js:

Imagem

Com o servidor rodando, acesse a URL indicada no Hello.js (localhost:1337) pelo navegador, e as palavras mágicas devem aparecer:

Imagem

É bom lembrar que enquanto o servidor Node estiver rodando, o cmd vai estar ‘travado’. Para fechar o servidor, pressione CTRL + C.

Anúncios

WebSockets com HTML5 e Fleck

Bom dia, boa tarde e boa noite jovens. Hoje criaremos um servidor WebSocket e um cliente para consumi-lo, utilizando HTML5 no cliente e C# com a biblioteca Fleck no servidor.

Mas afinal, o que é um WebSocket? Segundo a nossa duvidosa Wikipédia portuguesa:

WebSocket é uma tecnologia que permite a comunicação bidirecional por canais full-duplex sobre um único soquete Transmission Control Protocol(TCP). Ele é projetado para ser executado em browsers e servidores web que suportem o HTML5, mas pode ser usado por qualquer cliente ou servidor de aplicativos.

A tecnologia WebSocket permite criar um único canal de comunicação entre o Cliente e Servidor, e permite o Servidor mandar requisições para o cliente, e não apenas o inverso, como ocorre normalmente.

Vamos começar criando o servidor WebSocket. Estarei utilizando o Visual Studio 2012 para isso, mas irá funcionar perfeitamente no 2010. Primeiramente, vamos criar um projeto Console Application.

Criando o Projeto

Agora, para criar o servidor WebSocket, utilizarei o Fleck, biblioteca que implementa para nós o WebSocket. Ele pode ser baixado via Nuget, ou digitando o comando Install-Package Fleck no Package Manager Console.

O Fleck é bem simples e objetivo. O que precisamos fazer é implementar os métodos onOpen, onClose e onMessage do servidor.

websocketserver

Ao criar o objeto webSocket, é preciso defiinir a URL do serviço. Também criamos uma lista de Sockets, para armazenarmos todos os clients. No método onStart, incluimos o Socket que acabou de conectar na lista e no onClose retiramos ele. No método onMessage, inserimos a rotina que será executada ao recebermos uma requisição. Neste caso, ao receber uma mensagem, mandamos a mensagem com seu conteúdo para todos os clients conectados.

Agora, na parte Client:webSocketClient

Aqui, temos os mesmo métodos onOpen, onClose e onMessage. Criamos a conexão com o servidor no momento que instanciamos o WebSocket. Observe que a URL passada como parâmetro é a mesma na URL com que criamos o servidor WebSocket.

Com tudo pronto, já podemos testar nosso servidor e client. Para isso, é preciso executar o projeto do servidor WebSocket para então acessarmos nossa página HTML. O resultado:

resultado

Importante ressaltar que o client deve estar hospedado em um servidor. Se for executado localmente, a conexão não ocorrerá.

Projeto utilizado neste post se encontra no GitHub.