2017-10-23 8 views

답변

0

나는이 작업을 직접 수행하지 않았지만 다소 가능해야합니다. 애플리케이션이 포 그라운드에서 실행 중인지, 백그라운드에서 실행 중인지, 실행되고 닫힌 지 상관없이 MQTT 메시지를 수신하는 단일 연결을 열린 상태로 둘 수 있는지 여부는 알 수 없지만 그 효과는 달성 될 수 있다고 생각합니다.

백그라운드 작업 (백그라운드에서 실행할 때 또는 닫힌 상태에서 실행)이 플랫폼 간 (주로 Android 전용)으로 작동하지 않는 경우가 대부분이며 Android 기반 응용 프로그램을 수신하는 것과 같은 이벤트 기반 트리거에서 실행할 수 없습니다. MQTT가 게시됩니다. 이런 이유로 setInterval 같은 것을 기반으로 내 제안을보고 특정 지점에서 메시지를 확인합니다. 연결이 항상 살아 있지 않기 때문에 MQTT 연결에서 큰 keep-alive 간격 (또는 더러운 세션)을 설정하여 메시지를 검사하는 간격과 일치시키고 QoS 1 또는 2에 의존해야합니다 (더 세게), MQTT 연결을 닫았다가 다시 열어 유지 (더 쉽게)에 의존하십시오.

응용 프로그램이 포 그라운드 또는 백그라운드 일 때 MQTT 메시지 만 통과해야하는 경우, https://github.com/ocetnik/react-native-background-timer에서 setInterval까지와 같은 항목을 사용하고 웨이크 업을 사용하여 특정 간격으로 세분화 된 메시지를 확인할 수 있습니다. 앱이 종료 된 후에도 메시지가 통과해야하는 경우 https://github.com/vikeri/react-native-background-job과 같은 것이 필요합니다. 15 분 이상의 세분화 된 코드 만 실행할 수 있습니다.

나는 당신에게 행운을 빈다.