마스터욱 0 18 0 0

////////////////////////////// 시간

require('date-utils');

 

////////////////////////////// 소켓호출

var io = require('socket.io').listen(3303);

 

console.log('socket server run!');

 

io.sockets.on('connection', function(socket){

var newDate = new Date();

var time = newDate.toFormat('YYYY-MM-DD HH24:MI:SS');

console.log('connection => ' + time); //최초접속시 한번

 

//메세지 수신시

socket.on('send', function(res){

console.log(res);

//socket.emit('recv', data); //메세지를 발송한 본인에게만

io.emit('recv', res); //전체 커넥션 유저들에게

});

 

//브라우저를 떠날때 실행됨

socket.on('disconnect', () => {

var newDate = new Date();

var time = newDate.toFormat('YYYY-MM-DD HH24:MI:SS');

console.log('disconnected => ' + time);

});

});

 

 

생각했던 것보다 훨씬 간단하다.

솔직히 이렇게 쉽게 구현이 될줄은 몰랐다...

거기다가 문법 기본베이스가 자바스크립트이다보니 딱히 어려울것도 없었다.

 

소켓서버 소스코드는 위 소스코드가 전부이다...

 

클라이언트 소스와, 메세지를 저장할 뺵엔드 소스는 딱히 공개할 필요가 없을것 같아 패스하겠다...

 

노드서버의 MySQL에 메세지를 저장하려다가,

클라이언트 쪽에서 넘어오는 메세지 발송 아이디의 노출과 변조 염려가 있어서, 그냥 웹서버DB에서 저장을 구현했다.

사실 이렇게 해도, 메세지 발생시에만 해당 메세지 1건의 http 호출이 일어나기 때문에, 이전의 폴링방식의 채팅과는 상대도 안되는 효율성을 보인다.

 


디자인과 색상은 카카오톡을 참조했다. (o^3^)o~

이모티콘 기능도 곧 넣을예정~
 

Comments


제목 글쓴이
Node.js 게시판 오픈 마스터욱
node js 에러가 발생할 경우 마스터욱
리눅스 서버에서 실행중인 node js 프로세스 확인 및 끄기 마스터욱
4시간동안 삽질한 개행(\n) 처리 문제 마스터욱
카페24 node.js 서버로 채팅서버 이전작업 마스터욱
중간점검 완성된 소스 마스터욱
date-utils 설치 마스터욱
crypto-js 설치 마스터욱
Node.js & MySQL 연동 마스터욱
socket.js 코드작성 마스터욱
socket.io 설치 마스터욱
로컬에 express 설치 마스터욱
로컬에 Node.js 설치 마스터욱
카테고리