martes, 14 de julio de 2015

Chat básico con Socket.io y Node.js

Ejemplo de una aplicación Chat realizada con Node.js y Socket.io, hago la aclaración que todo el código de esta aplicación es propiedad de Smitha Milli y lo pueden ver en su canal de Youtube, por lo que agrego los datos para quien desee conocer mas información y para la explicación personal de Smitha.

Canal Youtube: https://www.youtube.com/user/smithamilli
Twitter: https://twitter.com/SmithaMilli
Página Oficial: http://smithamilli.com/
Facebook: https://www.facebook.com/thisissmitha

La aplicación consta de 3 archivos y los módulos (dependencias) que serán creados con npm (gestor de paquetes de node.js) como se vera mas adelante.


El primer archivo que se necesita es package.json que en este contendrá el nombre de la aplicación, la versión, las dependencias que vamos a utilizar (express y socket.io)

package.json

{
"name":"chat",
"version":"0.0.1",
"private":"true",
"dependencies":{
"socket.io":"1.3.5",
"express":"4.13.1"
}
}

Para conocer la versión que tenga instalada de socket.io y express ejecute el siguiente comando: npm info socket.io version



npm info express version



Ya con este archivo podemos ejecutar npm y copiar las dependencias en nuestra carpeta de la aplicación, ejecutamos el comando npm install


Y al terminar ya tenemos listo la carpeta con los paquetes necesarios para la aplicación



El segundo archivo es app.js

app.js

var express = require('express'),
app = express(),
server = require('http').createServer(app),
io = require('socket.io').listen(server);

server.listen(3000);

app.get('/', function(req,res){
res.sendFile(__dirname + '/index.html');
});

io.sockets.on('connection',function(socket) {
socket.on('send message',function(data){
io.sockets.emit('new message',data);
});
});

Aquí en app.js lo que se tiene es un servidor que responderá los eventos de entrada y salida (ver video en canal de youtube de Smitha para una explicación mas a detalle)

Por ultimo tenemos el archivo index.html que solo mostrara un cuadro de texto con un botón para enviar lo escrito, en la parte superior se mostrara lo que se vaya escribiendo y recibiendo.

index.html

<html>
<head>
<title>Chat con socket.io y node.js</title>
<style type="text/css">
#chat{
height: 500px;
}
</style>
</head>
<body>
<div id="chat"></div>
<form id="send-message">
<input size="35" id="message"></input>
<input type="submit"></input>
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script src="/socket.io/socket.io.js"></script>
<script>
jQuery(function($){
var socket = io.connect();
var $messageForm = $('#send-message');
var $messageBox = $('#message');
var $chat = $('#chat');

$messageForm.submit(function(e){
e.preventDefault();
socket.emit('send message',$messageBox.val());
$messageBox.val('');
});
socket.on('new message', function(data){
$chat.append(data + "<br/>");
});
});
</script>
</body>
</html>

Ya con esto tenemos un pequeño chat que recibe y envía texto


domingo, 12 de julio de 2015

Ahora vamos con Node.js

Chilpancingo, Gro. a 12 de Julio del 2015.- Pues si, ahora vamos a probar con NODE.JS no soy el mas indicado para explicar que es esta plataforma, pero a grandes rasgos con Node.js ya se puede ejecutar código JavaScript en el servidor, lo que desde hace varios años se ha venido haciendo desde el navegador en el equipo cliente, claro que no solamente en eso radica la gran potencia de Node.js.

Otro beneficio que podemos enumerar de Node.js es la posibilidad de ejecutar muchas operaciones de manera rápida y que en todo momento responda a eventos sin la necesidad de estar sujeto a terminar un proceso.

Existe en la red un cantidad muy extensa de material de apoyo para aprender Node.js, pero dejare aquí unos sitios donde comenzar:


Bueno es todo lo que puedo decir por este momento, aun no tengo códigos que mostrar ya que estoy en fase de aprendizaje.