NODEJS + SOCKET.IO + CHAT EN CENTOS 5.5

NODEJS + SOCKET.IO + CHAT EN CENTOS 5.5
Este manual explica como instalar NODEJS en un servidor CENTOS 5.5. El primer pasó es conectarnos vía SSH a nuestro servidor, yo utilizo PUTTY.
  1. Putty a un servidor:

  1. Ejecute PuTTy
  2. En el menú de configuración seleccione la categoría Session
  3. Introduzca el nombre de su dominio o IP en el campo Host Name y seleccione el protocolo SSH
  4. Introduzca un nombre para esta conexión en el campo Saved Sessions
  5. Vuelva al menú de configuración y seleccione la categoría SSH
  6. Asegúrese de que está marcada la opción 2 en Preferred SSH protocol version
  7. Seleccione nuevamente la categoría Session
  8. Para guardar la configuración pulse Save y Open para conectar
Configuración de acceso SSH

Al iniciar la conexión, se abrirá la ventana del terminal. Introduzca su nombre de usuario y pulse Intro, después, introduzca su contraseña y pulse Intro. Si el nombre de usuario y password son correctos podrá iniciar la sesión SSH.


  1. Verificar que versión del tar que tenemos:
Esto es debido a que se tienen que descomprimir algunos archivos de socket.io y por lo regular los ditros de CENTOS tienen versiones viejas de tar por lo regular 1.15 y nosotros requerimos 1.26 hacia arriba.


Yo tengo tar1.26 porque lo reinstale, a continuación muestro el manual para instalar tar1.26.  Claro que si ustedes tienen una versión más resiente así déjenlo.

Tiene que colocar una por una estas líneas en su SSH.

1
2
3
4
5
6
7
8
wget http://ftp.gnu.org/gnu/tar/tar-1.26.tar.gz
gunzip tar-1.26.tar.gz
tar -xvf tar-1.26.tar
cd tar-1.26
./configure FORCE_UNSAFE_CONFIGURE=1
make
make install
cp -f src/tar /usr/local/bin/tar

Ahora explico los siguientes pasos:
Este comando descarga tar-1.26.tar.gz en el directorio en el que nos encontramos:

Ahora lo descomprimimos el gz
gunzip tar-1.26.tar.gz

Y descomprimimos el .tar así
tar -xvf tar-1.26.tar

Nos metemos dentro del archivo descomprimido
cd tar-1.26

Lo preparamos para su instalación.
./configure FORCE_UNSAFE_CONFIGURE=1
Creamos los archivos de la intalacion
make
Lo instalamos
make install
Colocamos los archivos en fuente en usr/local/bin/tar
cp -f src/tar /usr/local/bin/tar
Por último cerramos sesión saliéndonos de putty y entrando de nuevo y volvemos a escribir en el Putty tar –version y tiene que paraecer esto.
Listo tenemos la versión 1.26 del TAR Ahora viene lo bueno la instalación de nodejs.

  1. Instalamos git:
Primero asegurate que tenes git instalado o simplemente instalalo con:
sudo yum install git

Obtenemos el ultimo fuente de nodejs desde su git en github:
git clone http://github.com/ry/node.git && cd node
./configure
make
make install

 Ahora podes ejecutar el comando “node -v” y deberias obtener la version actualmente instalada en el sistema.


3b.-Intalar Nodejs descargando un tar:
wget http://nodejs.org/dist/v0.10.4/node-v0.10.4.tar.gz
tar zxf node-v0.10.4.tar.gz
cd node-v0.10.4
./configure
make
make install


Descargamos NPM
Este es un manejador de paquetes para extender a node, muy similar a las gemas en Ruby. Su instalacion es realmente facil:
curl http://npmjs.org/install.sh | sh

Si mal no recuerdo les comente que se tiene que instalar la versión 1.26 de tar ya que npm descomprime los archivos a descargar y la versión 1.15 de tar no los descomprime y marca errores (lo cual no es nuestro caso)

socket.io
npm install socket.io@0.9.x

Express

npm install -g express@2.5.x express -v


  1. Vamos a hacer un chat para poner a prueba nuestro servidor
Primero abrimos el mcedit

Pegamos el siguiente código

var io=require(‘socket.io’).listen(5555);
io.sockets.on(‘connection’,function(socket){
   socket.on(‘set nickname’,function(nickname){
       socket.set(‘nickname’,nickname,function(){
           socket.emit(‘ready’);
       })
   })
   socket.on(‘set room’,function(room){
       socket.join(room);
       socket.broadcast.to(room).emit(‘new in’);
       socket.on(‘msg’,function(msg){
           io.sockets.in(room).emit(‘messageRoom’,msg);
       })
   })
})


Click en guardar y lo guardamos con el nombre chat.js

Ejecutamos el archivo previamente guardado así
node chat.js
Si esta bien nuestro código aparecerá
info  – socket.io started (Esto significa que nuestro servidor está corriendo).

Ahora subimos los archivos de front que son los siguientes:
Chat.php
<!DOCTYPE html>
<html>
<head>
 <link href=”css/css.css” rel=”stylesheet” type=”text/css” />
 <script src=”http://ipservidor:5555/socket.io/socket.io.js” type=”text/javascript”></script>
 <script src=”js/jquery.js”></script>
 <script src=”js/chat.js”></script>
</head>
<body>
 <div id=”contenedor”>
   <div id=”nickarea”>
     <label>Nickname</label><input type=”text” id=”nickname” placeholder=”nickname”/>
     <label>Room</label><input type=”text” id=”room” placeholder=”room”/>
   </div>
   <div id=”messagearea”>
     <label>message</label><input type=”text” id=”message” placeholder=”message”/>
     <div id=”chatArea”></div>
   </div>
</div>
</body>
</html>
css/css.css
#contenedor
{
 border-radius:1em;
 background-color:#ccc;
 width:50%;
 margin:1em auto;
 display:block;
}
div input,div label
{
 display:block;
 text-align:center;
 margin:1em auto;
 padding: 0.5em;
 width: 70%;
}

js/chat.js
var ws=io.connect(“http://ipservidor.mx:5555″);
$(document).ready(function(){    
 var nickname=$(“#nickname”);
 nickname.focus();
 var message=$(“#message”);
 var room=$(“#room”);
 $(“#messagearea”).hide();
 
 nickname.bind(‘keypress’,function(e){
   if(e.keyCode==13){
if((room.val()!=””) && (nickname.val()!=””)){
  ws.emit(‘set nickname’,nickname.val());
  ws.emit(‘set room’,room.val());
}
}
 })

 room.bind(‘keypress’,function(e){
   if(e.keyCode==13){
if(room.val()!=”” && nickname.val()!=””){
  ws.emit(‘set nickname’,nickname.val());
  ws.emit(‘set room’,room.val());
}  
}
 })
 
 ws.on(‘ready’,function(){
   $(“#messagearea”).show(“slow”);
message.focus();
   $(“#nickarea”).fadeOut();
 })
 
 message.bind(‘keypress’,function(e){
   if(e.keyCode==13){
 //alert(message.val());
 ws.emit(‘msg’,message.val());
}
 })
 ws.on(‘messageRoom’,function(data){
   $(“#chatArea”).append(data+”<br/>”);
 })
})

Los resultados
Te logueas con tu nombre y una sala de chat (cualquier combinación alfanumérica) en 2 navegadores diferentes y pensionas enter


Obtendra esto
Escribimos nuestro mensaje en cada navegador y se refleja en el otro.

Manual realizado el día 30 de Dic. 2011 por Eugenio Chaparro Maya
Eucm2@hotmail.com
NODEJS TUTORIAL 1
NODEJS TUTORIAL 2
NODEJS TUTORIAL 3



NODEJS TUTORIAL 4


NODEJS TUTORIAL 5


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Salir de la versión móvil