4 Komitmen 1dd1d8644a ... 4e792c4541

Pembuat SHA1 Pesan Tanggal
  niujiuru 4e792c4541 优化修改注释 2 minggu lalu
  niujiuru b11b382a64 优化注释 2 minggu lalu
  niujiuru 46cdf45f94 优化sshd模块client的打印输出, 取消打印到日志文件, 只需输出到终端屏幕 2 minggu lalu
  niujiuru 187cfa25ce 优化超时 2 minggu lalu
4 mengubah file dengan 9 tambahan dan 8 penghapusan
  1. 1 1
      sshd/client/client.go
  2. 4 4
      sshd/client/coupler.go
  3. 3 2
      sshd/sshd.go
  4. 1 1
      utils/shell/execute.go

+ 1 - 1
sshd/client/client.go

@@ -61,7 +61,7 @@ func main() {
 		return
 	}
 
-	term() // 启动终端模拟器
+	term() // 启动终端模拟器
 }
 
 // SHELL终端模拟器

+ 4 - 4
sshd/client/coupler.go

@@ -2,13 +2,13 @@ package main
 
 import (
 	"context"
+	"fmt"
 	"strings"
 	"sync"
 	"sync/atomic"
 	"time"
 
 	mqtt "github.com/eclipse/paho.mqtt.golang"
-	"hnyfkj.com.cn/rtu/linux/baseapp"
 )
 
 const (
@@ -48,13 +48,13 @@ func (c *MQTTCoupler) init() error {
 
 	opts.OnConnect = func(client mqtt.Client) {
 		if !c.isConnected.Swap(true) {
-			baseapp.Logger.Infof("[%s] MQTT Broker连接成功", MODULE_NAME)
+			fmt.Printf("[%s] MQTT Broker连接成功", MODULE_NAME)
 		}
 	}
 
 	opts.OnConnectionLost = func(client mqtt.Client, err error) {
 		if c.isConnected.Swap(false) {
-			baseapp.Logger.Warnf("[%s] MQTT Broker连接丢失: %v!", MODULE_NAME, err)
+			fmt.Printf("[%s] MQTT Broker连接丢失: %v!", MODULE_NAME, err)
 		}
 	}
 
@@ -84,7 +84,7 @@ func (c *MQTTCoupler) tick() time.Duration {
 	}
 
 	if err := c.connect(); err != nil {
-		baseapp.Logger.Errorf("[%s] MQTT Broker连接失败: %v!!", MODULE_NAME, err)
+		fmt.Printf("[%s] MQTT Broker连接失败: %v!!", MODULE_NAME, err)
 	}
 
 	return SlowInterval

+ 3 - 2
sshd/sshd.go

@@ -329,6 +329,7 @@ func (c *MQTTCoupler) execOneCmd(msg mqtt.Message) {
 	// Call-?:无效, 远端调用了还不支持的-方法
 	default:
 		resp = jsonrpc2.BuildError(req, jsonrpc2.ErrMethodNotFound, "")
+		goto retp
 	}
 
 retp:
@@ -368,7 +369,7 @@ func (c *MQTTCoupler) startExecutorReaper(interval, timeout time.Duration) {
 				ce.mu.Unlock()
 
 				if expired && idle { // 超时且状态空闲时则回收
-					ce.handleClose()
+					ce.handleClose() //// 该函数不能阻塞, 否则锁
 					delete(c.executorMap, id)
 				} // end if
 			} // end for2
@@ -395,7 +396,7 @@ func (ce *clientExecutor) handleClose() error {
 
 	var err error
 	if needInterrupt {
-		err = ce.executor.Interrupt()
+		err = ce.executor.Interrupt() // 发送"Ctrl+C"
 	}
 
 	return err

+ 1 - 1
utils/shell/execute.go

@@ -17,7 +17,7 @@ import (
 )
 
 const (
-	defaultTimeout    = 8 * time.Second
+	defaultTimeout    = 3 * time.Second
 	gracePeriod       = 2 * time.Second
 	forceKillWait     = 2 * time.Second
 	exitTimeoutCode   = 124