2016-10-24 3 views
1

REST API 및 여러 스마트 장치를 통해 프로세스를 자동화 할 계획이 있습니다. 제가하려는 것은 다음과 같습니다. 각자 자신의 작업을 완료하기 위해 일련의 작업을 수행하는 4 개의 장치가 있습니다. (실제로 장치에 기반한 특정 시리즈에서 4 개의 LED가 켜지 게됩니다.) 현재 Java로 이것을 에뮬레이션하고 있습니다. (현재는 장치를 가지고 있지 않기 때문에)나머지 API를 기반으로 작업을 구현하는 방법

예를 들어, no.1 장치가 적색 LED를 10 초 동안 켜고, no.2 장치를 켜야한다고합니다. 10 초 등입니다. 이것은 프로그램을 종료 할 때까지 자동으로 수행됩니다.

JAVA와 JAX-RS 라이브러리를 사용하여 REST API를 개발했으며 장치 및 정보 (장치 이름, 현재 상태 예 : 노란색 Led ON/OFF 등)를 설명합니다.

내가 이해하지 못하는 것은 지금 API의 정보에 응답 한 프로그램을 만드는 방법입니다. API 정보에서 값이 변경되면 내 프로그램에 알림을 보내려면 어떻게해야합니까?

어떻게 장치 2가 해당 조치를 시작하기위한 응답을 얻을 때까지 API를 폴링 할 수 있습니까? 또는 서버 데이터의 값을 수동으로 변경하면 작업이 시작되도록 설정 하시겠습니까? 예를 들어 노란색 led가 켜져 있고 서버 데이터베이스에 가서 꺼내면 내 응용 프로그램에 어떻게 알리고 시뮬레이션 된 LED 상태를 바꿀까요?

+0

* "어떻게 장치 2에서 API를 폴링 할 수 있습니까?"- 아키텍쳐가 허용하는 경우 폴링보다 게시/구독을 더 사용하는 것이 좋습니다. –

+0

@ cricket_007 폴링 할 필요가 없습니다. 클라이언트 (응용 프로그램) 상태가 바뀔 때까지 기다려서 다음 작업을 시작할 수 있습니다. – MockingBird

+0

맞아요. 앞에서 말했듯이, 데이터베이스에 쓰기 이벤트를 "구독"할 수있는 업데이트 이벤트를 "게시"하고 다른 작업을 수행합니다 거기에서 –

답변

0

HTTP를 사용하고 있으므로 가장 적합한 해결책은 웹 소켓을 사용하는 것입니다. 전이중 통신에 사용할 수 있습니다. 한 장치에서 입력을 받으면이를 처리하고 다른 장치에 알릴 수 있습니다. 이것은 대형 클라이언트 기반에는 적합하지 않습니다.

관련 문제