티스토리 뷰
최근 서비스 앱을 개발하며 푸시서버를 새로 만들게 되었다.
기존 푸시서버는 PHP 5.4 기반의 어드민툴 서버에서 작성되었기 때문에
몇가지 한계를 갖고 있었다.
첫번째 문제는 기존 APNS 푸시 라이브러리가 보낼수 있는 한글 길이가 무지 짧다는거다.
아래 소스는 내가 원래 쓰던 푸시서버 소스다
function sendMessage( $ssn, $deviceToken, $message ) { $payloadFormat = array( 'aps' => array( 'alert' => array( 'title' => $message["title"] ), ), "msg" => $message["msg"], "category" => $message["category"], "img" => '', "link" => $message["link"], ); $payload = json_encode( $payloadFormat ); $streamContext = stream_context_create(); stream_context_set_option( $streamContext, 'ssl', 'local_cert', $this->apnsCert[$this->isDev][$ssn] ); $apns = stream_socket_client( 'ssl://'.$this->apnsHost[$this->isDev].':2195', $error, $errorString, 2, STREAM_CLIENT_CONNECT, $streamContext ); if ( $apns ) { $apnsMessage = chr( 0 ).chr( 0 ).chr( 32 ).pack( 'H*', str_replace( ' ', '', $deviceToken ) ).chr( 0 ).chr( strlen( $payload ) ).$payload; fwrite( $apns, $apnsMessage ); fclose( $apns ); return true; } else { error( $errorString ); } }
> http://stackoverflow.com/questions/34684099/new-apns-provider-api-and-php
우리 SE의 말> 음.. APNS2 사용하려면 결국 http2 프로토콜을 써야 하는건데.. 이거 php5.5.24 이상 버전에 curl, openssl 둘다 버전이 올라가야 하는거네요;;
혹시이거.. 해당 서버에서 꼭 하셔야 하는건가요..?
-----------------------------------------------------------------------------------
여기까지쓰고 글을 더 안썼네
여튼 이걸 해결하기 위해 OS 단계에서 curl, openssl 최신버전이 필요했는데
회사에서 운용중인 OS 이미지에 해당 버전이 적용되어있지 않아서
서버 업데이트로 해당사항을 구현하는데 실패했다.
그래서 Node로 짜보자 하고 구현해보니
node-apn, node-fcm 두가지 패키지를 이용함으로서 간단하게 구현이 가능했다.
구조는 위 사진과 같다.
여튼 이런식으로 푸시 메시지 예약전송 시스템을 구현했다.
이상 전달끝.
'IT > Android iOS' 카테고리의 다른 글
알면알수록 신경쓰이는 애플 인증서 체계 (0) | 2017.08.28 |
---|---|
Android Instant App / PWA (0) | 2017.05.16 |
[iOS/Swift]네이버 아이디로 로그인 붙이기 (6) | 2015.08.24 |
how to decode EUC-KR to NSString (0) | 2015.05.06 |
iOS에서 EUC-KR NSString으로 디코딩하기 (8) | 2015.05.06 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
TAG
- 언프리티 랩스타
- 0x0422
- 개발자취업
- 감정수업
- 존슨 황
- 컴퓨터공학과
- 존슨황
- 송강호
- 오블완
- 나가노 스키여행
- 개발자
- 컴공
- 연구개발직
- happo-one
- 티스토리챌린지
- 취업
- 깝스 1회
- 칠레와인
- 박찬욱
- Octane S2
- nsstring
- Java Developer Day
- JS
- 일리네어
- 이창동
- 하포원
- 하 준 숴이
- 취준생
- cfstring
- swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함