Giter VIP home page Giter VIP logo

xe-noti's Introduction

XE 웹푸시 모듈

1. XE 웹푸시 모듈

XE, Rhymix의 알림센터에서 발생하는 알림에 대해 웹푸시로 전송해주는 모듈입니다.
관리자는 개별 회원에게 알림을 보낼수도 있으며, 여러가지의 관리 기능들을 제공합니다.

또한 대량의 푸시전송을 시도할 경우에도 PHP에서 처리하지 않고 NodeJS에서 처리하기 때문에 푸시전송으로 인한 딜레이를 최소화합니다.
기존 푸시 전송방식 'PHP --> 푸시서버' 에서 'PHP --> NodeJS --> 푸시서버' 로 전송방식이 변경되었습니다.
PHP와 nodejs간 데이터 전달을 RabbitMQ를 이용하여 처리합니다.

2. 요구사항

2.1. 서버 요구사항

  • DB는 반드시 MySQL(MariaDB)여야 합니다. MSSQL, CUBRID와 같은 DB는 지원하지 않습니다.
  • nodejs에서 발생하는 각종 푸시들을 처리하기 위해(예; 발송결과) XE에서 사용하는 DB서버에 접근이 가능해야 합니다.
  • 웹 사이트 주소는 IP가 아닌 도메인으로 구성되어야 하며, HTTPS 환경에서만 동작합니다.
  • 서버는 외부 푸시서버 FCM(Firebase Cloud Messaging), WNS(Windows Notification Service), MCS(Mozilla Cloud Services)와 정상적으로 통신이 가능해야 합니다. 인터넷과 별도로 분리된 환경(예; 인트라넷, 테스트망)에서는 작동하지 않습니다.
Name Min Version description
PHP 7.1
MySQL(MariaDB)
nodejs 6.17
RabbitMQ 9.1.0

2.2. 클라이언트 요구사항

2.2.1 지원하는 브라우저

Chrome, Firefox, Opera, Edge에 대한 웹푸시를 지원합니다.

Name Min Version description
Chrome 52 iOS 미지원
Firefox 60 iOS 미지원
Edge 79
Samsung Browser 6

2.2.2 지원하지 않는 브라우저

IE, Safari, Android Browser, Etc..

3. 설치

3.1. RabbitMQ 설치

3.2. NodeJS 설치

3.3. 모듈 설치

4. 모듈 설정

모듈은 '모듈', '알림센터 연동', '수동 전송', '알림 그룹', '푸시 장치 목록', '발송 로그', '점검', '스킨 설정' 항목으로 구성되어 있습니다.

일부 고급설정 항목은 '모듈 - 전체 - 간편 설정' 설정값이 '상세설정'으로 되어야 표시되는 경우가 있습니다.

페이지 이름 설명
모듈 기본적으로 모듈이 동작하는데 있어 필요한 설정정보를 입력하는 페이지입니다.
알림센터 연동 알림센터에서 생성되는 알림을 웹푸시로 어떻게 보낼지 설정하는 페이지입니다.
수동 전송 관리자가 지정된 알림을 특정 유저 혹은 전체에게 보낼때 사용하는 페이지입니다.
알림 그룹 한 개로 묶어서 처리할 푸시 알림들의 그룹을 설정하는 페이지입니다.
푸시 장치 목록 알림을 사용하는 단말기를 보여주는 페이지입니다.
발송 로그 푸시가 발송된 로그를 볼 수 있는 페이지입니다.
점검 오래된 단말기를 삭제하거나 로그를 일괄정리하는 페이지입니다.
스킨 설정 사용자 웹푸시 설정(모듈 설정 항목에서 '회원정보 보기메뉴 추가'가 활성화되어야 함)에서 사용할 스킨, 레이아웃을 설정하는 페이지입니다.

4.1. 모듈

알림 템플릿

일부 설정에 대해서는 알림 템플릿이 존재합니다.

4.1.1. 전체

4.1.2. 푸시 서버 설정

4.1.3. 메세지 큐 서버 설정

4.1.4. 회원 푸시

4.1.5. 비회원 푸시

4.1.6. 기타

4.2. 알림센터 연동

알림센터의 알림을 웹푸시로 어떻게 보낼지 설정하는 부분입니다. '맨션', '댓글', '대댓글', '추천', '쪽지', '스크랩', '관리자 알림', '기타', '테스트' 알림 항목에 대해 개별적으로 '알림 템플릿' 정의가 가능하며, 알림센터에서 해당 알림 기능이 사용중이어야 합니다.
'알림 템플릿' 항목을 보려면 상세설정 상태여야 합니다.

4.3. 수동 전송

4.4. 알림 그룹

4.5. 푸시 장치 목록

4.6. 발송 로그

4.7. 점검

DB에 있는 웹푸시 관련 데이터를 정리하기 위한 기능입니다.

이름 설명
발송로그 일괄 삭제 선택한 발송로그를 일괄 삭제합니다.
단말기 일괄 삭제 선택한 단말기를 일괄 삭제합니다.
휴먼 단말기 삭제 선택한 조건의 단말기를 일괄 삭제합니다.

4.8. 스킨 설정

/index.php?mid=noti 에서 사용할 모듈 스킨과 레이아웃을 설정하는 부분입니다.

xe-noti's People

Contributors

dependabot[bot] avatar huhani avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

xe-noti's Issues

service worker에서 올바르지 않은 pushsubscriptionchange 이벤트 처리

https://medium.com/@madridserginho/how-to-handle-webpush-api-pushsubscriptionchange-event-in-modern-browsers-6e47840d756f

브라우저에 따라 pushsubscriptionchange 이벤트가 실행되면서 발생되는 (인자로 넘어오는)이벤트 객체 데이터가 다름.
현재의 크롬에선 이 이벤트가 발생조차 하지 않으며, 파이어폭스에서 evt.oldSubscription, evt.newSubscription 값은 항상 없는채로 넘어옴.
이에 대한 대응이 필요.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.