Fazendo o Deploy de uma aplicação NodeJs + Socket.io para um WebSite do Azure utilizando o Visual Studio Code

Standard

Neste post veremos como podemos fazer o deploy de aplicações NodeJs que possuam recursos de comunicação em tempo real (no caso utilizando Socket.io) para um WebSite do Azure utilizando o novo editor de código da Microsoft chamado Visual Studio Code

Nota: Para este exemplo vou estar utilizando a aplicação criada neste post que é feita em NodeJs + Socket.io onde exibe em tempo real o percentual de consumo da cpu.

Abaixo listo os tópicos que serão abordados ao longo do artigo:

– Configurando o VSCode e as permissões do git para habilitar Sync, Pull e Push pelo editor
– Criando um WebSite no Azure para sincronização automática com o Github
– Habilitando e configurando WebSockets na WebSite criada
– Configurando o arquivo web.config
– Rodando a aplicação com WebSockets e Long Pooling – Entendendo os transportes

Continue reading

ASP.NET SignalR – Acompanhando o percentual de uso da CPU em tempo real

Standard

Atendendo alguns pedidos do Facebook e por email que recebi semana passada, hoje vou demostrar um exemplo de utilização do SignalR em uma aplicação que NÃO seja um chat. 🙂

Importante: Se você não sabe o que é o SignalR, nunca ouviu falar, ou não tem conhecimento, aconselho a leitura dos meus artigos anteriores sobre o assunto antes de continuar.

Situação Atual

Realmente a maioria dos artigos, posts e exemplos encontrados pela web demonstram a utilização do SignalR em aplicações de chat, muito bacana, isto facilita muito as coisas para quem precisa implementar algo do tipo, porém, tem um lado muito negativo: a maioria do pessoal vê vantagem em utiliza-lo apenas em aplicações de chat, ou algo relativamente simples. Porém, o SignalR é uma biblioteca ALTAMENTE completa e robusta, podendo ser utilizadas em diversos tipos de situações e projetos.

Particulamente utilizo o SignalR regularmente nos projetos que trabalho, e até hoje, nunca foi para criar um chat!
Continue reading

Iniciando com SignalR – Agora como membro do ASP.NET

Standard

Contava os dias para a integração do SignalR com o ASP.NET, pois a cada dia o mesmo se tornava mais estável, com mais conteúdo online, além de ser muito bem aceito e interpretado pelos desenvolvedores web ao redor do mundo.

Basicamente agora sob o ASP.NET além de contar com seus recursos para aplicações web em tempo real, podemos utilizar templates específicos no Visual Studio, além de contar com auxílio, dicas e tutoriais pelo próprio site do asp.net. Oficialmente o SignalR torna-se membro do ASP.NET.

Algumas coisas mudaram (para melhor é claro) em relação a forma de se trabalhar com o mesmo anteriormente, vejamos alguns itens importantes:
Continue reading

SignalR – Trocando mensagens e notificações entre Server/Client de forma global e individual

Standard

No post anterior sobre o SignalR, fiz uma introdução rápida sobre a biblioteca, onde conseguimos observar que realmente é muito fácil a utilização da lib, além de demonstrar como podemos realizar a troca de mensagens/notificações entre server/client em tempo real.
Neste artigo, vou demonstrar como podemos requisitar uma função em server-side, e após o término, notificar todos os usuários conectados (client-side), ou apenas algum(ns) usuário(s) específico(s).

Para todos os exemplos, estou considerando que a importação dos scripts e referências para o SignalR já tenham sido realizadas (No artigo anterior eu demonstro como definir as referências e scripts para o SignalR funcionar corretamente).

Notificação Global

Veja como é simples o envio de notificações em tempo real para todos os usuários conectados, primeiramente vamos criar nossa conexão no script do cliente (client-side):

<script language="javascript" type="text/javascript">

    $(function () {

	// Cria objeto de conexão
	var nomeHubClient = $.connection.nomeHub;

        // Função que envia mensagem para o servidor
        $("#btnEnviaMsg").click(function () {

	    var mensagem = $('#mensagem').val();
            nomeHubClient.enviaMensagem(mensagem);
            $('#mensagem').val("");

        });

        // Inicia a conexão
        $.connection.hub.start(function () {
            // Envia para o servidor o usuário que está criando a conexão
	    // O campo #nomeUsuario é apenas um campo presente na nossa página aspx que identifica o nome do usuário em questão (Não é obrigatório)
	    nomeHubClient.join($('#nomeUsuario').val(""));
        });

        // Função chamada em real-time pelo servidor
        nomeHubClient.novaMensagem = function (mensagem) {
            mensagem = $("#mensagens").html() + "<br />" + mensagem;
            $("#mensagens").html(mensagem);
        };
    });

</script>

Continue reading

SignalR – Introdução, tipos de conexão e exemplo simples de utilização

Standard

Este post é uma introdução rápida e simplificada de uma série de artigos que pretendo publicar sobre a biblioteca SignalR. Minha ideia é publicar alguns artigos desta fantástica biblioteca, demonstrado o poder e facilidade para criar aplicações web com informações/atualizações em tempo real.

 

SignalR, o que é?

Basicamente, é uma biblioteca em .Net e de código livre, que viabiliza atualizações/notificações asíncronas em tempo real para aplicações web. Ou seja, ela permite enviar dados e informações entre client/server em tempo real. Legal em!

A Microsoft já oferece suporte ao SignalR, o mesmo abrange aplicações em Javascript, Silverlight, .Net, Windows Phone 7 e WinRT. Além da Microsoft a comunidade open source forneceu apoio para Mono e iOS também.

 

Mas o .Net Framework 4.5 não suporta Websockets, utilizado para recursos em tempo real?

Sim, e aconselho o estudo e aprendizado em Websockets, onde, com o framework 4.5 é possivel utilizar seus recursos com o namespace System.Web.WebSockets, porém, trabalhar com Websockets requer no mínimo o framework 4.5 e o IIS8 ou IIS8 Express para utiliza-lo. Sem contar que infelizmente apenas o Chrome 16++, Firefox 11++ e IE 10 o suportam.

Desta forma, hoje, estou utilizando o SignalR para aplicações em tempo real.

  Continue reading