상세 컨텐츠

본문 제목

노드js로 신규 게시판 글등록시 자동 리스트업 구현

노드js·자바스크립트

by 김일국 2018. 5. 27. 16:51

본문

오늘은 지난 시간에  그누보드 게시글 코멘트를 실시간 업데이트 보여주기 구현(외근관리사이트...)에 이어서

게시글 신규 등록시 다른기기에서 사용자 리플레시/리로드 없이 리스트를 실시간으로 리스트업이 되도록 구현해 보겠습니다.

작업환경: 카페24 노드js호스팅 ( http://nodejs19.cafe24app.com/publish/ ) -> 사용만기 되어서 변경

-> http://cloudnode.paas-ta.org/publish/ (클라우드 파스타 사용)

웹프로그램: 닷홈 무료호스팅 그누보드 CMS ( http://timespace12.dothome.co.kr )

실행결과 확인(아래-아무런 사용자 액션없이 자동으로 다른 기기에서 리스트업 됩니다.)

*작업 내역

- 노드js 소스: 지난번 직업한 web.js 파일에 아래 3줄 추가

socket.on('list_view', function(data) {
  console.log('리스트뷰'+data.bo_table);//디버그
  io.emit('list_view', data); //원격 그누보드 에서 실행할 함수 지정
 });

- 닷홈 그누보드 소스:

1. 게시판 쓰기 스킨 write.skin.php 파일 하단에 추가.

function fwrite_submit(f)

{

...

//노드js추가 시작
 node_list_view('<?=$bo_table?>');
 //노드js추가 끝

...

</script>

<!-- 노드js추가 시작
<script src='http://nodejs19.cafe24app.com/socket.io/socket.io.js'></script>

 -->

<!-- 클라우드 파스타로 변경 후 -->

<script src='http://cloudnode.paas-ta.org/socket.io/socket.io.js'></script>
    <!-- 실제 위 서버경로에 socket.io.js를 사용자가 생성하지 않아도, 노드서버가 실행되어 있다면, 자동으로 생성됨.
 즉, 위 경로를 URL로 접근시 파일을 다운로드 할 수 있다면, 노드서버가 실행중이라고 판단하면 됨 -->
<script>
    //var serverUrl = 'http://nodejs19.cafe24app.com'; //파스타 클라우드로 변경 후(아래)

    var serverUrl = 'http://cloudnode.paas-ta.org';
    var socket = io.connect(serverUrl);
    function node_list_view(bo_table)
    {
     socket.emit('list_view', {
                        bo_table: bo_table
                    });  
    }
</script>
<!-- 노드js추가 끝 -->


2. 게시판 리스트 스킨 list.skin.php 파일 하단에 추가.

<!-- 노드js추가 시작
<script src='http://nodejs19.cafe24app.com/socket.io/socket.io.js'></script>

-->

<!-- 클라우드 파스타로 변경 후 -->

<script src='http://cloudnode.paas-ta.org/socket.io/socket.io.js'></script>
    <!-- 실제 위 서버경로에 socket.io.js를 사용자가 생성하지 않아도, 노드서버가 실행되어 있다면, 자동으로 생성됨.
 즉, 위 경로를 URL로 접근시 파일을 다운로드 할 수 있다면, 노드서버가 실행중이라고 판단하면 됨 -->
<script>
    //var serverUrl = 'http://nodejs19.cafe24app.com'; //파스타 클라우드로 변경 후(아래)

    var serverUrl = 'http://cloudnode.paas-ta.org';
    var socket = io.connect(serverUrl);
 socket.on('list_view', function(data) {
  var bo_table= data.bo_table;
  document.location.replace("http://timespace12.dothome.co.kr/gnu/bbs/board.php?bo_table="+ bo_table);
 });  
</script>
<!-- 노드js추가 끝 -->


주의)

//$comment_id = mysql_insert_id();//php7 이후에서는 아래로 변경
 $comment_id = sql_insert_id();

참고)

파스타 클라우드용 노드js 소스 Cloudnode.zip


다음 포스트에서는 노드js를 이용해서 실시간 접속자 현황을 볼 수 있게 구현할 예정 입니다.

(아래 화면은 현재 사용자가 브라우저를 리로드/리플레시 해야 지만 실시간 접속자를 확인 할 수 있는 구조 입니다)

작업참조내용 server.js

주) 일일 외근 현황이니 리스트없시 해당하는 날짜로만 검색되도록 그누보드 리스트스킨을 변경하는 작업도 필요.

Cloudnode.zip
7.25MB
server.js
0.0MB

관련글 더보기

댓글 영역