zhouzeyu 1 год назад
Родитель
Сommit
68bafe890e

+ 2 - 18
src/main/java/com/tuoren/forward/netty/AliDeviceHttp.java

@@ -24,11 +24,6 @@ public class AliDeviceHttp {
     @Autowired
     YmlConfig ymlConfig;
 
-    /**
-     * 构建初始化参数
-     *
-     * @return 包含初始化参数的Map对象,用于后续的请求配置
-     */
 
     public Map<String, String> getInitParameter() {
         String timestamp = LocalDateTimeUtil.format(LocalDateTime.now(ZoneOffset.UTC), "yyyy-MM-dd'T'HH:mm:ss'Z'");
@@ -45,12 +40,7 @@ public class AliDeviceHttp {
         return map;
     }
 
-    /**
-     * 查询设备详情
-     *
-     * @param deviceName 设备名称
-     * @return 返回设备的详细信息的JSONObject对象 返回阿里云设备参数
-     */
+
 
     public JSONObject deviceQuery(String deviceName) {
         JSONObject data = new JSONObject();
@@ -79,13 +69,7 @@ public class AliDeviceHttp {
         return data;
     }
 
-    /**
-     * 设备注册函数
-     * 该函数用于向物联网平台注册一个新的设备
-     *
-     * @param deviceName 设备名称,用于标识待注册的设备
-     * @return 返回一个包含注册结果的JSONObject对象,包括设备的相关信息和状态
-     */
+
     public JSONObject deviceRegist(String deviceName) {
 
         JSONObject data = new JSONObject();

+ 1 - 7
src/main/java/com/tuoren/forward/netty/AliDeviceQuery.java

@@ -23,13 +23,7 @@ public class AliDeviceQuery {
 	private static Logger logger = LoggerFactory.getLogger(AliDeviceQuery.class);
     @Autowired
      YmlConfig ymlConfig;
-    /**
-     * 查询设备信息并返回连接参数
-     * 该方法用于查询指定设备的详细信息,并生成该设备与阿里云物联网平台建立连接所需的参数
-     *
-     * @param deviceName 设备名称,用于标识需要查询的设备
-     * @return 包含设备连接参数的JSONObject,包括地址、端口、产品Key、客户端ID、用户名和密码
-     */
+
     public  JSONObject deviceQuery(String deviceName) {
 		JSONObject conn_info = new JSONObject();
 		String timestamp = LocalDateTimeUtil.format(LocalDateTime.now(ZoneOffset.UTC), "yyyy-MM-dd'T'HH:mm:ss'Z'");

+ 5 - 40
src/main/java/com/tuoren/forward/netty/AliDeviceRegist.java

@@ -28,12 +28,7 @@ public class AliDeviceRegist {
     @Autowired
     YmlConfig ymlConfig;
 	 
-    /**
-     * 动态注册。
-     *
-     * @param deviceName 设备名称
-     * @throws Exception
-     */
+
     public boolean register(String deviceName) throws Exception {
         // 表示客户端ID,建议使用设备的MAC地址或SN码,64字符内。
     	String productKey = ymlConfig.getProductKey();
@@ -62,14 +57,6 @@ public class AliDeviceRegist {
         return connect(broker, mqttClientId, mqttUsername, mqttPassword);
     }
 
-    /**
-     * 通过MQTT connect报文发送动态注册信息。
-     *
-     * @param serverURL 动态注册域名地址
-     * @param clientId 客户端ID
-     * @param username MQTT用户名
-     * @param password MQTT密码
-     */
     @SuppressWarnings("resource")
     private boolean connect(String serverURL, String clientId, final String username, String password) {
         MqttConnectOptions connOpts = new MqttConnectOptions();
@@ -124,13 +111,7 @@ public class AliDeviceRegist {
         }
     }
 
-    /**
-     * 动态注册签名。
-     *
-     * @param params 签名参数
-     * @param productSecret 产品密钥
-     * @return 签名十六进制字符串
-     */
+
     private String sign(JSONObject params, String productSecret) {
 
         // 请求参数按字典顺序排序。
@@ -155,12 +136,7 @@ public class AliDeviceRegist {
         return sign;
     }
 
-    /**
-     * 获取JSON对象排序后的key集合。
-     *
-     * @param json 需要排序的JSON对象
-     * @return 排序后的key集合
-     */
+
     private Set<String> getSortedKeys(JSONObject json) {
         SortedMap<String, String> map = new TreeMap<String, String>();
         for (String key : json.keySet()) {
@@ -170,13 +146,7 @@ public class AliDeviceRegist {
         return map.keySet();
     }
 
-    /**
-     * 使用HMAC_ALGORITHM加密。
-     *
-     * @param content 明文
-     * @param secret 密钥
-     * @return 密文
-     */
+
     private String encrypt(String content, String secret) {
         try {
             byte[] text = content.getBytes(StandardCharsets.UTF_8);
@@ -192,12 +162,7 @@ public class AliDeviceRegist {
         }
     }
 
-    /**
-     * 二进制转十六进制字符串。
-     *
-     * @param b 二进制数组
-     * @return 十六进制字符串
-     */
+
     private String byte2hex(byte[] b) {
         StringBuffer sb = new StringBuffer();
         for (int n = 0; b != null && n < b.length; n++) {

+ 5 - 50
src/main/java/com/tuoren/forward/netty/IotCoapClientWithAes.java

@@ -27,10 +27,6 @@ import java.util.Set;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
-/**
- * CoAP客户端连接阿里云物联网平台,基于eclipse californium开发。
- * 自主接入开发流程及参数填写,请参见《CoAP连接通信》的使用对称加密自主接入章节。
- */
 @Component
 public class IotCoapClientWithAes {
 
@@ -77,13 +73,7 @@ public class IotCoapClientWithAes {
     @SuppressWarnings("unused")
     private long seqOffset = 3;
 
-    /**
-     * 初始化CoAP客户端。
-     * 
-     * @param productKey,产品key。
-     * @param deviceName,设备名称。
-     * @param deviceSecret ,设备密钥。
-     */
+
     public void connect(String productKey, String deviceName, String deviceSecret) {
         try {
         	System.out.println("in---------------");
@@ -125,12 +115,7 @@ public class IotCoapClientWithAes {
         }
     }
 
-    /**
-     * 发送消息。
-     * 
-     * @param topic,发送消息的Topic。
-     * @param payload,消息内容。
-     */
+
     public void publish(String topic, byte[] payload) {
         try {
             // 消息发布uri,/topic/${topic}。
@@ -194,14 +179,6 @@ public class IotCoapClientWithAes {
         }
     }
 
-    /**
-     * 生成认证请求内容。
-     * 
-     * @param productKey,产品key。
-     * @param deviceName,设备名字。
-     * @param deviceSecret,设备密钥。
-     * @return 认证请求。
-     */
     private String authBody(String productKey, String deviceName, String deviceSecret) {
 
         // 构建认证请求。
@@ -220,13 +197,7 @@ public class IotCoapClientWithAes {
         return body.toJSONString();
     }
 
-    /**
-     * 设备端签名。
-     * 
-     * @param params,签名参数。
-     * @param deviceSecret,设备密钥。
-     * @return 签名十六进制字符串。
-     */
+
     private String sign(JSONObject params, String deviceSecret) {
 
         // 请求参数按字典顺序排序。
@@ -253,12 +224,6 @@ public class IotCoapClientWithAes {
         return sign;
     }
 
-    /**
-     * 获取JSON对象排序后的key集合。
-     * 
-     * @param json,需要排序的JSON对象。
-     * @return 排序后的key集合。
-     */
     private Set<String> getSortedKeys(JSONObject json) {
         SortedMap<String, String> map = new TreeMap<String, String>();
         for (String key : json.keySet()) {
@@ -268,13 +233,7 @@ public class IotCoapClientWithAes {
         return map.keySet();
     }
 
-    /**
-     * 使用HMAC_ALGORITHM加密。
-     * 
-     * @param content,明文。
-     * @param secret,密钥。
-     * @return 密文。
-     */
+
     private String encrypt(String content, String secret) {
         try {
             byte[] text = content.getBytes(StandardCharsets.UTF_8);
@@ -289,11 +248,7 @@ public class IotCoapClientWithAes {
         }
     }
 
-    /**
-     * SHA-256
-     * 
-     * @param str,待加密的报文。
-     */
+
     private String encod(String str) {
         MessageDigest messageDigest;
         String encdeStr = "";

+ 4 - 30
src/main/java/com/tuoren/forward/netty/MyServer.java

@@ -133,7 +133,6 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
             jsonString = handleRegister(msgStr);
 
 
-            // 验证 JSON 格式
             JSONObject jsonObject = validateAndParseJson(jsonString);
 
             long endTime = System.currentTimeMillis();
@@ -178,7 +177,6 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
             logger.error("regist error:" + e);
         }
 
-        /** 输出操作  **/
         //执行加密操作
         byte[] resultRegister = AES.encrypt(jsonString, key);
         System.out.println("加密数据");
@@ -218,12 +216,8 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
         NetworkType network = NetworkType.NetworkTypeName(networkCode);
 
 
-        //判断是否为老代码
         boolean isOldCode = paramJson.containsKey("platform");
         if (isOldCode) {
-            /**
-             * 老代码处理
-             */
             String deviceName = paramJson.getString("deviceId"); //device表中的mac
 
             //执行设备注册操作或查询操作
@@ -242,9 +236,6 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
             }
 
         } else {
-            /**
-             * 新代码处理
-             */
             //平台
             Platform platform = null;
             //版本
@@ -262,20 +253,14 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
 
             //产品编号
             String productId = paramJson.getString("productId");
-            //如果为空,则默认为1dbfd476b7nm2
             productId = StrUtil.isBlank(productId) ? "1dbfd476b7nm2" : productId;
 
             //设备编号
-            String deviceName = paramJson.getString("deviceId"); //device表中的mac
+            String deviceName = paramJson.getString("deviceId");
 
             //编码
-            String userId = paramJson.getString("userId"); // user表中的code
+            String userId = paramJson.getString("userId");
 
-            /**
-             * 先判断UserId和DeviceId是否存在
-             * 如果存在进行注册,如果不存在返回code 401
-             *
-             */
             User userIdCode = userMapper.selectByCode(userId);
             if (userIdCode == null || StrUtil.isBlank(userIdCode.getCode())) {
                 json.put("code", NExcCode.ERROR_USERID.getCode());
@@ -287,18 +272,14 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
 
             //根据网络类型进行判断
             if (NetworkType.WIFI.equals(network)) {
-                /**
-                 * wifi泵
-                 */
+
                 platform = Platform.PlatformName(Platform.LOCAL.getCode());
                 // 处理WiFi注册
                 json = handleWifiRegistration(paramJson, network, platform, protocol, productId, deviceName, userId);
 
             } else {
 
-                /**
-                 * 新NB,4G泵
-                 */
+
                 platform = Platform.PlatformName(Platform.ALIYUN.getCode());
 
                 //执行设备注册操作或查询操作
@@ -329,7 +310,6 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
     }
 
 
-    //获取参数中的deviceId
     private String extractDeviceId(String msgStr) {
         try {
             JSONObject json = JSON.parseObject(msgStr);
@@ -340,7 +320,6 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
         }
     }
 
-    //截取JSON数组中的数据
     private JSONObject validateAndParseJson(String jsonString) throws Exception {
         try {
             return JSONObject.parseObject(jsonString);
@@ -351,7 +330,6 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
     }
 
 
-    //新wifi注册信息
     private JSONObject handleWifiRegistration(JSONObject paramJson, NetworkType network, Platform platform, NetworkProtocol protocol, String productId, String deviceName, String userId) throws Exception {
         JSONObject json = new JSONObject();
         int version = paramJson.getIntValue("version");
@@ -375,10 +353,8 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
         String addressArray = userConfig.getAddress();
         String deviceSecret = userConfig.getDeviceSecret();
 
-        // 将地址数据转换成JSON数组
         JSONArray addressArrayJson = JSON.parseArray(addressArray);
 
-        // 遍历循环, 查找与当前网络类型相同的地址
         boolean found = false;
         for (Object item : addressArrayJson) {
             JSONObject networkInfo = (JSONObject) item;
@@ -397,9 +373,7 @@ class MyServerHandler extends ChannelInboundHandlerAdapter {
             return json;
         }
 
-        // 将WiFi字符串转换成JSON数组
         JSONArray wifiArray = JSON.parseArray(wifi);
-        // 调用方法转换wifi数据
         JSONArray transformWifiArray = WifiDataTrans.transformWifiArray(wifiArray);
         json.put("deviceSecret", deviceSecret);
         json.put("wifi", transformWifiArray);