아 리 클 라 우 드 사물 인터넷. NET Core 클 라 이언 트 | CZGL. AliIoTClient: 3. Topic 구독 및 응답 Topic

6363 단어 임 베 디 드json
문서 디 렉 터 리:
설명 1. 아 리 클 라 우 드 사물 인터넷 연결 2. IoT 클 라 이언 트 3. Topic 구독 및 응답 Topic 4. 장비 등록 속성 4.1 위치 정보 보고 5. 장치 속성 설정 6. 설비 사건 보고 7. 서비스 호출 8. 의뢰 사건 9. 의뢰 이벤트 방법 사용자 정의 CZGL. AliIoTClient 는 Topic 을 다섯 가지 로 나 누 었 습 니 다.
각각: 일반 Topic, 속성 상신, 속성 하 발, 이벤트 상신, 서비스 호출, 일반 Topic 을 제외 하고 모든 Topic 은 메시지 의 발송, 응답 이 있 습 니 다.
보통 Topic, 메시지 발송 또는 MQTT 프로 토 콜 에 따라 SDK 는 메시지 가 다른 쪽 에 도달 할 수 있 도록 엄 격 히 보장 합 니 다.장치 푸 시 속성, 이벤트 등 데 이 터 를 서버 에 전송 하면 서버 가 응답 하고 서버 푸 시 (하 보 내기) 데 이 터 를 장치 에 전송 하면 장치 가 응답 해 야 합 니 다.물론 이런 호응 은 있 으 나 마 나 실질 적 인 영향 은 없다.
모든 Topic 에는 특정한 MQTT 통신 주소 가 있 습 니 다. 이 주 소 는 이미 CZGL. AliIoTClient 에서 자동 으로 생 성 되 었 습 니 다. 일반 Topic 의 통신 주 소 를 입력 하면 됩 니 다.
1) 주제 구독
Topic 을 구독 하기 전에 아 리 클 라 우 드 사물 인터넷 에서 해당 하 는 Topic 과 설정 을 정의 해 야 합 니 다.   권한, 일반 Topic, string [] 을 사용 하여 목록 을 포함 한 다음 연결 방법 을 호출 할 때 매개 변수 로 입력 하고 서버 를 연결 한 후에 필요 한 구독 을 추가 할 수 있 습 니 다.일반 Topic 은 동적 으로 추가 할 수 있 으 며 핫 구독 에 속 합 니 다.
사용 방법:
 //       Topic、       Topic
            string[] topics = new string[] { 
                                client.CombineHeadTopic("get"), "/a1xrkGSkb5R/mire/user/get1" }; client.ConnectIoT(topics,null,60); 

Topic 주소 가 비교적 길 어서 기록 할 수 있 습 니 다.  .../user/  뒤의 내용  CombineHeadTopic()  자동 생 성 가능,
client.CombineHeadTopic("get") 

2) 응답
속성, 이벤트, 서비스 기능 을 사용 하여 서버 에 데이터 전송 을 할 때 서버 가 응답 합 니 다. 응답 을 받 을 수도 있 고 응답 을 받 지 않 을 수도 있 습 니 다.CZGL. AliIoTClient 는 기본적으로 서버 의 응답 정 보 를 받 지 않 습 니 다.실제로 이런 응답 정 보 는 일반적으로 측정 할 때 만 필요 하 다.
응답 방법
설명 하 다.
OpenEventPostReply()
보고 이벤트 수신 후 서버 응답
OpenPropertyPostReply()
장치 속성 업로드 후 서버 응답 수신
OpenServicePostRaw()
서버 호출 허용 서비스 새 버 전 은 이 설정 을 취소 하 였 습 니 다.
OpenPropertyDownPost()
서버 에서 장치 속성 명령 을 내 릴 수 있 도록 합 니 다.
이러한 응답 은 클 라 이언 트 를 연결 하기 전에 설정 해 야 하 며 클 라 이언 트 가 연 결 된 후에 상기 방법 을 사용 할 수 없습니다. 그렇지 않 으 면 이상 이 발생 할 수 있 습 니 다.복구 되 었 습 니 다. 프로그램의 임의의 단계 에서 수신 기능 을 열 고 임의로 취소 하고 열 수 있 습 니 다.
이 기능 들 이 열 렸 는 지 확인 하기:
public CZGL.AliIoTClient.OpenTopic getOpenTopic()
OpenTopic  어떤 기능 의 수신 여 부 를 가 져 오 거나 설정 할 수 있 는 8 개의 속성 이 있 습 니 다.
속성
설명 하 다.
기본 값
CommonTopic
일반 토 픽 받 을 지 여부
true 로 고정, 변경 불가
PropertyUpRawReplyTopic
장치 가 투과 속성 데 이 터 를 업로드 한 후 서버 의 응답
false
PropertyPostReplyTopic
장치 가 Alink json 속성 데 이 터 를 업로드 한 후 서버 의 응답
false
PropertyDownRaw
서버 에서 속성 을 설정 하 는 명령 을 내 립 니 다.
false
PropertyDownPost
서버 에서 속성 을 설정 하 는 명령 을 내 립 니 다. Alink json
false
EventUpRawReply
장치 이벤트 보고, 서버 응답 수신, 전송
false
EventPostReply
장치 이벤트 보고, 서버 응답 수신, Alink json
false
ServiceDownRaw
서버 호출 서비스, 전송
false
ServicePostRaw
서버 호출 서비스, Alink json
false
스 포 일 러 와 Alink json 을 구분 하기 때문에 스 포 일 러 라면 위의 Alink json 항목 을 설정 하면 무효 이 고 반대로 도 마찬가지 입 니 다.
3) 서버 연결 후
서버 에 연결 하면 구독 할 일반 Topic 도 추가 할 수 있 습 니 다.
public void TopicAdd(string[] topics, [byte[] QOS = null]) 

예시:
client.TopicAdd(new string[]{ client.CombineHeadTopic("get") })

구독 한 Topic 제거:
public void TopicRemove(string[] topics) 

서버 에 연결 하면 서버 의 응답 정 보 를 취소 할 수 있 지만 다시 받 을 수 없습니다.
방법.
설명 하 다.
CloseEventPostReply()
장치 업로드 이벤트 후 서버 응답 을 받 지 않 습 니 다.
ClosePropertyPostReply()
장치 업로드 속성 을 받 지 않 은 후 서버 응답
CloseServicePostRaw()
서버 에서 장치 서 비 스 를 호출 하지 못 하 게 하 는 명령 이 삭제 되 었 습 니 다.
ClosePropertyDownPost()
서버 에서 장치 속성 을 설정 하 는 명령 을 내 릴 수 없습니다.
클 라 이언 트 가 서버 에 연결 한 후에 응답 을 취소 할 수 있 습 니 다.단, 취소 후 더 이상 구독 할 수 없습니다!복구 되 었 습 니 다. 프로그램 이 임의의 단계 에서 취소 한 후에 수신 을 열 수 있 습 니 다.
4) 주제 설명
구독 한 Topic 목록 가 져 오기:
public string[] GetSubedList { get; }

예시:
var topicList = client.GetSubedList;

서버 설정 장치 속성, 호출 서비스 등 기능 은 MQTT 통신 을 사용 하여 구독 / 푸 시 형식 이기 때문에 어떤 기능 의 데이터 전송 이 든 본질 은 Topic 입 니 다.따라서 장치 속성 보고, 장치 속성 설정 등 은 Topic 속성 을 설정 할 수 있 습 니 다.
CZGL. AliIoTClient 에 서 는 클 라 이언 트 가 필요 한 Topic 을 구독 할 수 있 고, 서버 에 연결 하면 서버 가 모든 Topic 에 데 이 터 를 보 낼 수 있 지만, 클 라 이언 트 가 구독 한 Topic 을 지정 해 야 클 라 이언 트 가 푸 시 를 받 을 수 있 으 며, 그렇지 않 으 면 콘 솔 에서 어떻게 클릭 해서 보 내 든 클 라 이언 트 는 받 지 않 는 다.
주의해 야 할 것 은 일반 Topic 에 대해 클 라 이언 트 가 연 결 될 때의 설정 으로 서버 가 클 라 이언 트 에 메 시 지 를 전송 할 수 있 는 지, 동적 인 지 를 결정 하 는 것 입 니 다.
속성, 이벤트, 서비스 등 기능 은 지난번 설정 을 저장 합 니 다.열 면
client.OpenPropertyPostReply();

서버 에 업 로드 된 응답 을 받 은 후 프로그램 에서 삭제 합 니 다.
client.OpenPropertyPostReply();

다시 실행 하면 설정 하지 않 은 한 응답 을 받 을 수 있 습 니 다.
client.ClosePropertyPostReply();

장치 가 서버 에 데 이 터 를 업로드 하면 서버 가 응답 합 니 다. 물론 서버 가 장치 속성 을 설정 하고 장치 서 비 스 를 호출 할 때 클 라 이언 트 도 응답 할 수 있 습 니 다.뒷부분 에서 이야기 하 겠 습 니 다.
다음으로 전송:https://www.cnblogs.com/whuanle/p/10994686.html

좋은 웹페이지 즐겨찾기