Browse Source

优化通用发布MQTT通知接口

locky 3 năm trước cách đây
mục cha
commit
0d86e91b63
1 tập tin đã thay đổi với 5 bổ sung28 xóa
  1. 5 28
      AdminController/LogManagementController.py

+ 5 - 28
AdminController/LogManagementController.py

@@ -154,8 +154,9 @@ class LogManagementView(View):
             print(e)
             return response.json(500, repr(e))
 
-    def requestPublishMqtt(self, request_dict, response):
-        # 通用发布MQTT主题通知
+    # 通用发布MQTT通知
+    @staticmethod
+    def requestPublishMqtt(request_dict, response):
         msg = request_dict.get('msg', None)
         thing_name = request_dict.get('thing_name', None)
         topic_name = request_dict.get('topic_name', None)
@@ -163,34 +164,10 @@ class LogManagementView(View):
             return response.json(444)
 
         try:
-            # 获取数据组织将要请求的url
-            iot = iotdeviceInfoModel.objects.filter(
-                thing_name=thing_name).values(
-                'endpoint', 'token_iot_number')
-            if not iot.exists():
-                return response.json(10043)
-            endpoint = iot[0]['endpoint']
-            Token = iot[0]['token_iot_number']
-
-            # api doc: https://docs.aws.amazon.com/zh_cn/iot/latest/developerguide/http.html
-            # url: https://IoT_data_endpoint/topics/url_encoded_topic_name?qos=1
-            # post请求url发布MQTT消息
-            url = 'https://{}/topics/{}'.format(endpoint, topic_name)
-            authorizer_name = 'Ansjer_Iot_Auth'
-            signature = CommonService.rsa_sign(Token)  # Token签名
-            headers = {
-                'x-amz-customauthorizer-name': authorizer_name,
-                'Token': Token,
-                'x-amz-customauthorizer-signature': signature}
             msg = eval(msg)
-            r = requests.post(url=url, headers=headers, json=msg, timeout=2)
-            if r.status_code == 200:
-                res = r.json()
-                if res['message'] == 'OK':
-                    return response.json(0)
-                return response.json(10044)
-            else:
+            if not CommonService.req_publish_mqtt_msg(thing_name, topic_name, msg):
                 return response.json(10044)
+            return response.json(0)
         except Exception as e:
             return response.json(500, repr(e))