e disparado pelo Client side informando ao Server que o usuario foi conectado, desta forma temos no server um monitoramento para este evento, onde atraves da funcao de callback sera realizado uma interacao com o sistema. Da mesma forma o Server side emite o evento "showmessage" para o Client, onde o socket deste possui um monitoramento do evento utilizando uma funcao de callback que ira interagir com a aplicacao.Quem ja programa algum tempo com Javascript esta familiarizado com este tipo de programacao, principalmente quem utiliza jQuery, ExtJS, Prototype, entre outros. Entao vamos ao nosso exemplo para demonstrar os conceitos informados acima.1o Passo - Criando a estrutura no Server side: como no primeiro exemplo iremos criar um arquivo na pasta de instacao do node.js com o nome "socketio_exemplo.js" com o conteudo abaixo:/** * Funcao que ira ser chamada a cada conexao com o node.js * @param {ServerRequest} request Instancia do request da requisicao * @param {ServerResponse} response Instancia do response da requisicao */var onRequest = function (request, response) { // Informando o tipo do cabecalho da pagina response.writeHead(200, {'Content-Type': 'text/html'}); // Mensagem exibida no console ha cada requisicao console.log('Usuario conectado no Server!!!'); // Encerrando o response response.end();};// Requisitando os modulosvar http = require('http').createServer(onRequest), io = require('socket.io').listen(http);// Informando a porta para ser monitorada pelo Serverhttp.listen(8088, '127.0.0.1');/** * Evento "connection" que ocorre quando um usuario conecta no socket.io * @param {SocketObject} socket Objeto do socket conectado */io.sockets.on('connection', function(socket){ /** * Evento "userconected" que ocorre quando a pagina e carregada. */ socket.on('userconected', function(){ // Enviando a mensagem so para o socket atual socket.emit('showmessage', 'Usuario conectado no socket!!!'); // Servidor responde o mesmo resultado via broadcast. socket.broadcast.emit('showmessage', 'Outro usuario foi conectado'); }); /** * Evento "disconnect" emitido quando o usuario recarregar ou sair da pagina */ socket.on('disconnect', function(){ // Resposta do servidor via broadcast. socket.broadcast.emit('showmessage', 'Um usuario saiu ou recarregou a pagina!!!'); });});Detalhando o codigo:Linhas #6 a #15: e informado a funcao de callback que sera chamada em toda requisicao ao node.js na porta 8088.Linhas #18 e #19: sao requisitados os dois modulos http e o socket.io. Sendo criado o servidor do node.js utilizando a funcao "onRequest" e informando para o socket.io escutar a conexao do modulo http.Linha #22: informando para o servidor qual a porta e IP que este ira ser executado.Linhas #28 e #47: este bloco sera executado a toda conexao efetuada com o socket.io atraves do Client. Note que informamos utilizando o metodo "on" o nome do evento a ser monitorado e a funcao de callback que sera executada quando esse evento for disparado pelo Client.Na funcao de callback utilizando o parametro do socket passado na conexao e atachado dois eventos no socket ("userconected" e "disconnect"), desta forma o Server ira monitorar esses dois eventos que serao emitidos pelo Client.Linhas #32 a #38: e informado atraves do metodo "on" o monitoramento do evento "userconected" onde este utilizando o metodo "emit" do socket sera enviado uma mensagem para o usuario referente ao socket passado via parametro para o evento "connection". Ja na linha #37 sera enviada uma mensagem para todos os usuarios conectados, menos o