오늘은 그누보드와 연동하기 마무리 입니다. 노드JS와 일반 호스팅의 홈페이지와 데이터 전송에 대해서 기본기술을 알수 있게 됩니다.
그누보드 게시판의 댓글의 입력/수정/삭제가 실시간으로 이루어 집니다.
사용환경:
웹호스팅: 닷홈 무료호스팅계정
웹페이지: 그누보드5(GNU버전)게시판(basic스킨사용)
노드js: 구름 노드js 무료계정
확인URL:
http://timespace7.dothome.co.kr/gnu5/bbs/board.php?bo_table=nodecomment&wr_id=1
확인화면: IE, 크롬, 스마트폰 3가지를 켜놓은 상태에서 1곳에서 댓글을 달거나, 수정, 삭제하면, 모든 화면에 실시간 자동 적용되어 보입니다.
------------------------------------------------------------------------------------------------------------------
1) 노드 js서버의 자바스크립트 파일1개: node.basic.js 파일, 노드js 1.x버전부터는 socket.get(), .set() 함수를 지원하지 않습니다. 그래서, 대체 방법으로 처리 하였습니다.
------------------------------------------------------------------------------------------------------------------
var port = 9001;
var app = require('express')();//express 웹프레임웍의 일반적인 사용과정.
var http = require('http').Server(app);//http서버 객체생성 시 app(express) 프레임웍을 전달.
var io = require('socket.io')(http);//socket.io 소켓통신 객체생성 시 http서버 객체를 전달.
var msg = {//전역변수로 설정. 이유는,신규사용자가 페이지로딩시 현재상태를 가져갈수 있도록 처리
msg: '' //초기에는 실행상태를 갖지 않게 한다.
};
//.listen은 클라이언트에서 서버로 접속을 받기위해 대기하는 명령.
http.listen(port, function(){//노드js서버 실행여부 확인, 정상실행되었다면, 익명콜백함수 실행.
console.log('Socket IO server listening on port : ' + port);//서버콘솔에 listening on...이 출력.
});
//.on은 클라이언트에서 서버로 소켓통신(명령또는 데이터를 주고받기)위해 대기하는 명령
io.on('connection', function(socket){//클라이언트에서 connect 소켓연결이 발생하면 callback(socket)함수를 실행.
console.log('a user connected');//서버콘솔에 a user connected를 출력.
socket.on('disconnect', function(){//클라이언트에서 disconnect 소켓연결끊김이 발생하면, 익명콜백함수 실행.
console.log('user disconnect');//서버콘솔에 user disconnect 출력.
});
socket.on('comment_join', function(data) {
var room = data.bo_table + "|" + data.wr_id;
socket.join(room);
//socket.set('room', room);
socket.room = room;
console.log('디버그1'+socket.room);//디버그1
});
//클라이언트에서 메세지가 수신되면
socket.on('comment_delete', function(data) {
console.log('디버그3'+data.comment_id);//디버그1
io.emit('comment_delete', data);
});
socket.on('comment_update', function(data) {
if(socket.room) {
console.log('디버그2'+socket.room);//디버그2
console.log(data);
io.emit('comment_view', data);
}
/*
socket.get('room', function(err, room) {
if(err) {
console.log(err);
} else {
console.log(data);
io.sockets.in(room).emit('comment_view', data);
}
});
*/
});
});
-------------------------------------------------------------------
2) 그누보드 basic 스킨을 수정한 부분을 올려 놓습니다.
-------------------------------------------------------------------
수정하거나 추가한 파일: gnu5/skin/board/basic (PC용), gnu5/mobile/skin/board/basic (모바일용)
- PC/모바일공통작업: _common.php, async_comment.php 추가, view_comment.skin.php 수정
- 소스중간에 주석구문에 내용이 표시가 되어있습니다. ( 검색키워드: " 노드js추가 " )
- 스킨(소스)파일압축
pc.zip (PC용 게시판 basic스킨 수정본)
mobile.zip (모바일용 게시판 basic스킨 수정본)
워드프레스 테이블내용을 일반PHP로 출력하기02_뷰화면 (0) | 2017.08.06 |
---|---|
워드프레스 테이블내용을 일반PHP로 출력하기01_리스트화면 (0) | 2017.08.05 |
노드js_그누보드와 연동_02 (0) | 2017.07.18 |
노드js_그누보드와 연동_01 (0) | 2017.07.13 |
부트스트랩3.x 용 레이아웃 퍼블리싱_부가기능2(끝) (0) | 2017.06.06 |
댓글 영역