iOS 앱에 실시간 대기열을 구현해야합니다. (나중에 안드로이드 너무).iOS 클라이언트에서 실시간 대기열 구현
주요 사용 사례는 사용자가 모든 사용자가 실시간 공유 대기열을 볼 수 있도록하는 것입니다. 많은 대기열이있을 수 있지만 현재 사용자는 한 번에 하나의 대기열 만 볼 수 있습니다. 한 사용자가 대기열에서 항목을 삭제하면 같은 대기열을 보는 다른 모든 iOS 앱 사용자는 실시간으로 대기열 업데이트를 볼 수 있습니다. 내 서버가 새 항목이 특정 대기열에 추가되었음을 감지하면 실시간으로 해당 대기열을 보는 다른 모든 클라이언트에 푸시되어야합니다.
이러한 메커니즘을 구현하는 가장 좋은 방법은 무엇입니까? 현재 iOS 만 지원하고 있지만 나중에 다른 모바일 플랫폼을 추가하는 것이 번거롭지 않을 것 같은 쉬운 솔루션이어야합니다. 애플의 푸시 알림 또는 다른 영구 연결 옵션을 사용하여 - (기본적으로있는 UIWebView를 제시) 웹 기술 (JS & HTML5 인)
- : 내 생각
2 개 주 옵션이 있습니다. (푸시 알림은 앱이 백그라운드에 있거나 대기 금지 상태 인 경우에도 대기열 변경 사항을 알릴 수 있기를 바라는 경우 더 좋습니다.)
물론 하이브리드 솔루션을 선택할 수도 있습니다.
나는 다음과 같은 PUB-SUB 솔루션을 잘 알고 : 나는 누군가가 논문 또는 다른 사람의 실험 경우 하나를 추천하고 말할 수있는, 듣고 궁금
1.Xmpp (extension to Xmpp would be more accurate)
2.MQTT
3.Pubnub - http://www.pubnub.com/ (pretty new out there)
4. I read about Linked-in Kafka, but that seems way more advance and complicated to ny current needs.
기본 또는 웹 경우 기본 경로입니다. 선택한 솔루션은 사용하기 쉽고 구현이 빠르며 적은 비용으로 구현해야합니다. (서버 측이 PHP에서 주로 작성하지만, Node.js를뿐만 아니라 옵션이다) 모바일 클라이언트 (또는 모든 유형의 클라이언트) 서버 측 큐의 상태에 대한 업데이트하기
감사
첫 번째 선택은 서버에 대기열을 넣고 거기에 액세스 할 것인지, 아니면 모든 사용자간에 클라이언트 대기열의 동기화를 유지하려고 시도하는 것입니다. 부분적으로 결정은 업데이트 빈도와 동기화가 얼마나 신속하고 정확한지에 달려 있습니다. –
대기열은 서버에 의해 유지 관리됩니다. iOS 클라이언트가 대기열 상태를 통신하고 현재 대기열을보고 대기열 상태를 처리하는 모든 사용자에게 대기열 상태를 전달해야하는 이유가 무엇인지 생각할 수 없습니다. 내가 당신이 말한 것을 오해하지 않는다면, 서버는 구독하는 대기열에있는 모든 변경 사항을 모든 클라이언트에 푸시해야한다고 제안합니다. – Idan
그러면 "변경되었습니다"라는 알림을 보내고 클라이언트가 돌아와 대기열의 "보기"를 새로 고치게해야합니다. 클라이언트가 특정 변경 사항이 자신의 필요에 "중요한"것인지 여부를 알 수 있도록 "변경되었습니다"라는 한정자를 밀어 넣을 수는 있지만 그 정도까지는 가능합니다. 푸시를 처리하는 세 가지 방법은 푸시 알림 (아마도 최선의 선택), "get"및 폴링입니다. –