테스트 사이트 - 개발 중인 베타 버전입니다

Node.js 실시간 채팅(관리되지 않음)

· 5년 전 · 20058 · 149
capture.png

주의사항

- 현재 이 플러그인은 관리되지 않습니다.

- 익스플로러에서는 정상 작동을 보장하지 않습니다. 다른 브라우저를 사용해주세요.

 

댓글의 경우 답변이 늦거나 오지 않을 수 있습니다.

(이메일 필요 시 kmoon2437@gmail.com 으로)

 

데모 http://g5.test.choyunjin.kr/

 

설치 방법

그누보드외 추가준비물 : node.js (https://nodejs.org)

1.

[code]

create table `g5_chat_messages` (

    `ch_id` int not null auto_increment primary key,

    `ch_mb_id` varchar(1024) not null,

    `ch_msg` text not null,

    `ch_date` datetime not null,

    `ch_last_modified` datetime not null

)default charset=utf8mb4 engine=InnoDB;

 

create table `g5_chat_banlist` (

    `ba_id` int not null auto_increment primary key,

    `ba_mb_id` varchar(1024) not null unique key,

    `ba_reason` text default null

)default charset=utf8mb4 engine=InnoDB;

[/code]

위 쿼리문 2개를 db서버에서 실행합니다.

(charset 부분과 engine 부분, 테이블 접두사(g5_) 부분은 자신에게 맞게 고쳐주세요)

 

2. 파일을 다운로드하고, g5 폴더안의 모든 것을 그누보드루트에 그대로 올려줍니다.

3. node 폴더는 웹서버 루트 밖에 적당한 위치에 넣어줍니다.

4. 자신의 웹서버 컴퓨터에 ssh로 접속합니다.

5. 채팅서버파일(server.js,config.js,package.json,controllers 폴더)이 있는 폴더(아까 그 node 폴더)로 이동합니다.

6.

[code]

npm install

[/code]

위 명령을 실행해줍니다.

 

7. config.js에서 db설정/ssl설정을 자신에게 맞게 수정해줍니다.

ssl 설정의 경우 다음과 같이 입력합니다.

[code]

// ...

    main:{ // 기본 설정

        port:      1121,

        use_https: true, // ssl 사용하지 않을 경우 false 로 설정

        https_credentials:{

            cert:'(fullchain 파일 경로)',

            key: '(private key 파일 경로)'

        }

    },

// ...

[/code]

 

8. node server 명령을 실행합니다.(항상 실행은 pm2나 screen 등을 쓰시면 됩니다)

 

9. node 서버와 그누보드 서버를 분리하는 경우 extend 폴더의 chat.extend.php를 다음과 같이 수정합니다.

[code]

<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

 

// 채팅서버 웹소켓 프로토콜
define('G5_CHAT_WS_PROTOCOL','');

 

// 채팅서버 hostname
define('G5_CHAT_WS_HOSTNAME','(node서버 ip주소 또는 도메인)');

 

// 채팅서버 포트
define('G5_CHAT_WS_PORT','1121'); // node서버의 포트 입력. 기본값으로 놔둔 경우 여기도 그대로 놔둔다

[/code]

 

10. 끝!(접속 : http://사이트주소/(그누보드루트/)chat)

 

기타 :

사용자 밴 : [code]/ban 사용자명 사유[/code]

사용자 밴 사유 수정 : [code]/ban 밴된사용자명 바꿀사유[/code]

밴 해제 : [code]/unban 사용자명[/code]

밴된 사용자 목록 : [code]/banlist[/code]

닉네임 강조 : [code]@닉네임[/code]

밑줄 : [code]==글씨==[/code]

취소선 : [code]--글씨--[/code]

굵게/기울임체 : 마크다운과 같음

링크 :

[code][url][/code]

또는 [code][보여줄 텍스트](url)[/code] (괄호를 ]( 이렇게 붙여 써야 합니다)

또는 url앞에 타겟: 이렇게 붙일수도 있습니다(타겟앞에 _는 붙이지않습니다)

 

2020-05-07 Mysql 커넥션이 자동으로 끊기는 오류를 수정하여 재업 하였습니다.

2020-05-08 현재 접속자 표시 기능을 추가하여 재업 하였습니다.

2020-05-11 history 기능을 추가하여 재업 하였습니다.

2020-05-14 자신이 보낸 메시지의 css를 변경하여 재업 하였습니다.

2020-05-18 html 태그를 제거하는 구문 추가 + 일부 css 등을 변경하여 재업 하였습니다.

2020-05-26 사용자 차단 기능을 추가하여 재업 하였습니다.

2020-05-29 사용자 차단 해제 기능/node.js서버와 웹서버의 도메인이 다를 시 cors 오류 방지 코드를 추가하여 재업 하였습니다.

2020-06-07 각종 서식(굵은글씨 등)과 url링크, 사용자 닉네임 강조 기능을 추가하였습니다.

2020-06-27 서식 부분 수정 후 재업 하였습니다. 링크서식을 #{(타깃:)링크}# 이(가) 아닌 {(타깃:)링크} 을 사용해주세요.

2020-10-05 charset 지정이 가능하도록 수정+common.css 일부 수정했습니다.

2021-08-14 프로그램과 db구조를 전면적으로 갈아엎고 package.json 파일과 ssl 대응 기능을 추가했습니다.

2021-08-20 chat.extend.php 파일 추가(node서버 호스트명 변경 가능)

2022-02-04 /unban 명령어 버그 수정+명령어 입력값 검증 추가+/banlist 명령어를 추가했습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 149개

감사합니다.
5년 전
문제는 node.js
카페24에 웹호스팅중인데 도무지 어떻게 설치하는지 모르겠네요.
아마 카페24에서 웹호스팅에 node.js를 포함시켜주지 않는다면 추가로 node.js호스팅 같은걸 신청해야 될듯 합니다
5년 전
카페24에 문의하니 node.js 호스팅을 별도로 신청해야 한다는군요. 공용서버에 부담을주어 user들에게 피해를 줄 수 있다고 하네요.
좋은정보 감사드립니다
6번이 node js 를 설치하는 구문이가요?
node.js가 이미 설치되어 있는 가정 하에 설명하는 겁니다.
node.js 설치는
윈도우 : nodejs 사이트에서 인스톨러 받아서 깔면됩니다
리눅스 : vvvvvv
우분투 :
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
sudo apt-get install -y nodejs

centos (이것 외에 추가로 명령어를 실행해야 할수도 있습니다) :
curl -sL https://rpm.nodesource.com/setup_12.x | sudo bash -
이렇게 명령어를 실행하면 됩니다.
6번 구문은 node.js 폴더에서 추가 모듈을 설치하는 명령어입니다.
별도의 node.js호스팅을 사용하여 구축하려면 어떻게 해야하나요?
nodejs호스팅서버에 node폴더를 올려준뒤, screen등에서 node server.js 를 실행하시고 웹서버 그누보드루트에 chat폴더를 올려주시고, chat/js/common.js 파일의
... 'ws://'+location.hostname+':1121/ ...(1라인쯤에 있습니다)
에서 '+location.hostname+' 부분을 nodejs 호스팅서버 도메인주소(혹은 ip주소)로 수정하시고 접속하시면 될겁니다(node폴더의 config.js에서 DB설정을 자신에게 맞게 바꿔주세요)
도배는 어떻게 막나요?
혹시 차단기능이라지 게시글지우기 기능이있나요?
추후에 패치하겠습니다.

게시글 목록

번호 제목
13945
13943
13939
13932
13931
13923
13911
13906
13891
13884
13873
13861