2012-12-09 1 views
0

현재 작업중인 웹 응용 프로그램에 실시간 알림을 통합 할 계획입니다. 나는 XMPP를 사용하기로 결정했고, 내 필요에 맞는 것으로 생각되는 선택된 오픈 파이어 서버를 선택했다.XMPP - openfire, PHP 및 python 웹 서비스

프런트 엔드는 strophe 라이브러리를 사용하여 openfire 서버에서 BOSH를 사용하여 알림을 가져옵니다. 그러나 공지 사항은 통지이며 다른 메시지는 내 응용 프로그램에서 게시해야하므로이 코드는 백엔드에 있어야한다고 생각합니다. 처음에 나는 XMPHP와 JAXL과 같은 PHP XMPP 라이브러리를 사용하고 있지만, 각 스크립트가 연결, 인증 등과 같은 단계를 수행해야하므로 많은 오버 헤드가 발생할 것이라고 생각합니다. 그리고 이것이 PHP 끝을 약간 만들 것이라고 생각합니다. 느리고 반응이 없습니다.

이제는 PHP에서 호출 할 웹 서비스 역할을하는 미들웨어 응용 프로그램을 작성하려고합니다.이 응용 프로그램은 XMPP 서비스로 처리 할 것입니다. 이점은이 앱 (서버라면)을 한 번만 연결하면 포트에서 수신 대기하는 것입니다. 또한 비동기 방식으로이 API를 구축하여 내 PHP 응용 프로그램의 모든 요청을 먼저 처리 한 다음 더 이상의 요청이 없을 때이를 구축 할 계획입니다. 공지 게시 자료에 대해 이동하십시오. 나는 Python에서 SleekXMPP를 사용하여이 서비스를 작성하려고 계획하고 있습니다.

이것은 내가 계획 한 것입니다. XMPP에 익숙하지 않은이 전체 웹 서비스는 ans가 메모리 및 CPU 사용량, 장점, 단점, 확장 성 문제, 보안 등의 문제에 관해 의견을 나누고 싶습니다.

미리 감사드립니다.

추신 : -이 경우에도 이미 존재하지만 (나는 많은 인터넷 검색 결과를 찾지 못했지만) 거기에 직접 지시하십시오.

EDIT --- 중간 수준의 서비스는 다음을 수행해야합니다 (이에 국한되지 않음) : 1. 다른 그룹 및 커뮤니티 페이지 수준에 대한 게시 알림. 2. 일부 이벤트에서 단일 사용자에 대한 알림. 3. 사용자 등록 (사용자 서비스 플러그인을 사용하여 수행 할 수 있음).

EDIT --- 또한 pub-sub 노드를 만들고이 pub-sub 노드에서 사용자를 가입 및 가입 취소해야합니다.

또한 알림과 메시지를 데이터베이스에 저장하고 싶습니다 (openfire는 아님). 그게 좋은 선택일까요?

+1

미들웨어 응용 프로그램의 기능에 대한 자세한 정보를 제공 할 수 있습니까? –

답변

0

XMPP는 의사 소통이 일방적이며 알림 만 보내는 경우 (즉, 실시간 다중 사용자 채팅이 없음) 기타.).

지속성을 위해 Redis (http://redis.io)와 함께 서버 < => 클라이언트 채널에 대해 Socket.io (http://socket.io)와 같은 것을 사용하는 것이 좋습니다.

+0

잘 통보 완료 후 채팅 기능 등 실시간 기능도 개발 중입니다. 그러나 채팅을 위해서 프론트 엔드 (strophe 사용)에서 코드를 구현하기 만하면됩니다. – mlakhara