Post
EN

node js를 이용한 채팅 [펌]

출처 : http://dvlp.tistory.com/142

——— 2013.07.02—————

node.js 설치 후

npm install soket.io

npm install express -g

인가 ㅡㅡ;;

저 패키지를 설치해줘야 된다.

그후 node server.js 실행시키고

돌리면 된다.


index.html

<!DOCTYPE html>

   :::::NODE:::CHATTING:::::::      
 
  

NODE.JS톡 [펌]

 
 
  
   

※닉네임을 설정하여 주십시오.

   

        

   

        

  
  
   
   
   
                  
  
 
 
  FOOTER  

server.js

/* HTML */ var fs = require(‘fs’);

var server = require(‘http’).createServer(function(req,res){

 fs.readFile(‘index.html’,function(error,data){   res.writeHead(200,{‘Content-Type’:’text/html’});   res.end(data);  });

}).listen(8001,function(){

 console.log(‘Server Running Start’);

});;

var io     = require(‘socket.io’).listen(server); var nicklist = {};

var nickidlist = {};

io.set(‘log level’,2);

//소켓 서버 이벤트를 연결합니다.

io.sockets.on(‘connection’,function(socket){

 socket.on(‘systemIn’,function(data){

  if(data.name)

  {    //최초 입장시 아이디/소켓코드 저장

   nicklist[data.name] = socket.nickname = data.name;    nickidlist[data.name] = socket.id;

   io.sockets.emit(‘systemIn’,data);    io.sockets.emit(‘systemList’,nicklist);   }

 });

 socket.on(‘message’,function(data){   if(data.type == ‘poblic’)   {    io.sockets.emit(‘message’,data);   }   else   {    //귓속말 처리    io.sockets.sockets[nickidlist[data.name]].emit(‘message’,data);    io.sockets.sockets[nickidlist[data.type]].emit(‘message’,data);   }

 });

 //퇴장 처리

 socket.on(‘disconnect’,function(){   if(socket.nickname){    socket.broadcast.emit(‘systemOut’,{name:socket.nickname});    delete nicklist[socket.nickname];    io.sockets.emit(‘systemList’,nicklist);   }  }); });

This article is licensed under CC BY 4.0 by the author.