2012-08-28 3 views
2

에 푸시 알림을 보내려면 어떻게 객담이 게시물 읽기 :특정 장치

Apple Push Notifications to specific Users

내가 특정 장치에 푸시를 보낼 필요가 있지만, 내 문제는 내 응용 프로그램에 로그인하는 사용자가 확인된다는 것입니다 생성 된 UDID에 의해, 비추천 UIDevice를 사용하지 않는다. 나는 easyAPNS 저장이 MySQL의에 가치를 볼 :

CREATE TABLE `apns_device_history` (
2 
    `pid` int(9) unsigned NOT NULL auto_increment, 
3 
    `appname` varchar(255) NOT NULL, 
4 
    `appversion` varchar(25) default NULL, 
5 
    `deviceuid` char(40) NOT NULL, 
6 
    `devicetoken` char(64) NOT NULL, 
7 
    `devicename` varchar(255) NOT NULL, 
8 
    `devicemodel` varchar(100) NOT NULL, 
9 
    `deviceversion` varchar(25) NOT NULL, 

내가 특정 사용자에게 푸시를 보내 달성하기 위해,이 테이블에 등록 된 응용 프로그램 사용자를 연결하는 방법을 모르겠어요. 코드 pid 또는 장치 토큰을 코드로 가져올 수 있습니까?

감사합니다.

답변

3

APNS의 수준을 개발하는 것은 서버 측 관점과 클라이언트 측 관점 모두에 관련된 많은 지식이 없으면 상당히 많은 것을 할 수 있습니다. 명심해야 할

것들 :

  1. 서버 측들이 업데이트 또는 장치를 복원하는 경우 각 장치에 변경됩니다 고려 해당 장치 식별자 (토큰)을 취해야합니다 - 심지어 새 장치를 얻을!
  2. 클라이언트 쪽에서는 이러한 밀어 넣기 알림을 제대로 수락하고 처리하고 시작하기 위해 App Delegate에 구현해야하는 대리자 메서드를 고려해야합니다. (예제는 아래에 나와 있습니다).
  3. 서버는 적절한 "피드백"서비스를 설정하지 않으면 푸시 알림 인증서를 블랙리스트에 올릴 수 있다는 것을 다시 인식해야합니다. 이 식별자의 존재 여부를 확인하고 그렇지 않은 경우 데이터베이스에서 가져와 해당 사용자에게 푸시 알림을 계속 보내지 않도록합니다.
  4. 서버에서 한 번에 하나씩 알림을 보내거나 (각 개별 알림 사이에 시간 간격으로) 알림을 대량으로 보내고 이러한 알림을 "스트리밍"할 수 있습니다. 정말로 당신은 이것을 반드시 따라야합니다. 그렇지 않으면 다시 블랙리스트에 올릴 수 있고 사용자에게 푸시 알림을 다시 보낼 수 없습니다.

푸시 알림 서버를 만드는 작업을 시작하기 전에 이러한 4 가지 사항을 이해해야합니다.

id (int) 
token (int - 32 length) 
dateChanged (dateTime) 

나열된 세 필드는 기본적인 푸시 알림 서버에 모두 필요합니다. 데이터베이스의 개인 식별 정보, 푸시 메시지 수신자를 알 수 있도록 장치 항목의 토큰 및 dateChanged는 선택 사항이지만 데이터베이스에이 기간을 얼마나 오래 보유했는지 알기 쉽습니다.

"스트리밍"푸시 알림 개념으로 돌아가서 - 기본 PHP 스크립트를 사용하여 여러 알림을 한 번에 보내는 방법을 살펴보아야합니다 (PHP에서 전체 서버를 100 줄 미만의 코드로 처리했습니다). , 그래서 그것은 클래스 기반 PHP로 매우 간단 할 수있다).

CODE :

불행히도 그것은 기본 푸시 서비스를 위해 필요한 모든 코드를 넣어 공간을 많이 걸릴 것이라고하지만, 내가보기 엔 나뿐만 아니라 꽤 놀라운 위에서 언급 한 점에보고 추천 이 작업에 대한 자습서는 다음과 같습니다 :

+0

귀하의 의견에 많은 감사드립니다, 매우 도움이 !! – theomen

관련 문제