예전에~ 업무차 만들어놨던 Openfire 플러그인이다.
XMPP 기반에 Openfire 에서 유/무선 메신저 시스템을 구축하기 위해 APNS를 당연하게 사용해야하는데, 포럼을 아무리 뒤져봐도 만들어논게 없어서 자바책 펴가면서 만들었다 ㅠㅠㅠㅠㅠㅠ

로그인 이후에 <iq> stanza를 통해 아이폰의 UDID를 지정해두면, 해당 jid에게 보내진 message 들이 APNS 서버를 통해 푸쉬메시지를 받을 수 있다.

플러그인은 별도로 Openfire 내부에 테이블을 만들어서 jid와 udid 컬럼을 두고 apns를 보낼 디바이스를 관리한다.

https://github.com/myriky/XMPP2APNS

 

XMPP2APNS

Openfire(WildFire) 에서 발생하는 Message 태그를 APNS(Apple Push Notification Server)으로 포워딩하는 플러그인입니다.

해당 타겟(targetJID)으로 향하는 모든 메시지 스탠자를 검사하여 OpenFire DB안에 별도로 생성된 ofAPNS 테이블을 검사하여, 해당 사용자의 UDID를 통해 APNS로 푸쉬 메시지 발송을 요청합니다.

설치방법

  • Openfire Admin Console ( http://serverip:9090 ) 에 접속한 다음, Plugins 페이지에서 위에 있는 파일을 업로드 하면 됩니다.

플러그인이 설치되자마자, 데이터베이스에 ofAPNS 라는 테이블이 자동으로 생성됩니다.

그리고, APNS 인증서를 다운로드 받은 후 /usr/local/openfire/ 에 올려두시면 됩니다.

요청방법

디바이스 토큰 등록하기

<iq type="set" to="OPENFIRE_SERVER" id="apns68057d6a">
<query xmlns="urn:xmpp:apns">
<token>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</token>
</query>
</iq>

리턴 값

<iq type="result" id="OPENFIRE_SERVER" from="210.205.58.23" to="user@OPENFIRE_SERVER/68057d6a">
<query xmlns="urn:xmpp:apns">
<token>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</token>
</query>
</iq>

디바이스 토큰 가져오기

<iq type="get" to="OPENFIRE_SERVER" id="apns68057d6a">
        <query xmlns="urn:xmpp:apns"/>
</iq>

리턴 값

<iq type="result" id="apns68057d6a" from="OPENFIRE_SERVER" to="user@OPENFIRE_SERVER/68057d6a">
<query xmlns="urn:xmpp:apns">
<token>XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX</token>
</query> 
</iq> 

크리에이티브 커먼즈 라이선스
Creative Commons License
코드이그나이터에서 Cache 사용을 위해 여러가지 드라이버를 불러오는데, 이상하게 튜토리얼대로 작성했는데도 

An Error Was Encountered
Unable to load the requested driver: CI_Cache_file 



다음과 같은 오류가 발생한다..
버전의 문제인가 한참을 헤매다가 다음과 같은 솔루션을 발견했다.

system/libraries/Driver.php 파일에

48라인
$lib_name = strtolower(preg_replace('/^CI_/', '', $this->lib_name));

이 구문을
$lib_name = ucfirst(strtolower(preg_replace('/^CI_/', '', $this->lib_name))); 

으로 고쳐주면 된다..

하루종일 삽질했네.....

출처는 요기
http://www.serkandaglioglu.com/codeigniter-2.0.2-versiyonuna-yukseltme
크리에이티브 커먼즈 라이선스
Creative Commons License