diff --git a/src/framework/utils/telnet/parse.go b/src/framework/telnet/parse.go similarity index 100% rename from src/framework/utils/telnet/parse.go rename to src/framework/telnet/parse.go diff --git a/src/framework/utils/telnet/telnet.go b/src/framework/telnet/telnet.go similarity index 89% rename from src/framework/utils/telnet/telnet.go rename to src/framework/telnet/telnet.go index 33579e94..8b2c2ec4 100644 --- a/src/framework/utils/telnet/telnet.go +++ b/src/framework/telnet/telnet.go @@ -50,11 +50,6 @@ func (c *ConnTelnet) NewClient() (*ConnTelnet, error) { // fmt.Fprintln(client, c.User) // fmt.Fprintln(client, c.Password) - // 调整窗口大小 (120 列 x 128 行) - // 需要确保接收方理解并正确处理发送窗口大小设置命令 - client.Write([]byte{255, 251, 31}) - client.Write([]byte{255, 250, 31, byte(120 >> 8), byte(120 & 0xFF), byte(128 >> 8), byte(128 & 0xFF), 255, 240}) - c.Client = &client // 排空连接登录的信息 @@ -116,6 +111,6 @@ func (c *ConnTelnet) NewClientSession(cols, rows int) (*TelnetClientSession, err s := &TelnetClientSession{ Client: *c.Client, } - s.WindowChange(cols, rows) + // s.WindowChange(cols, rows) return s, nil } diff --git a/src/framework/utils/telnet/telnet_session.go b/src/framework/telnet/telnet_session.go similarity index 97% rename from src/framework/utils/telnet/telnet_session.go rename to src/framework/telnet/telnet_session.go index 4d0cc59f..33994a56 100644 --- a/src/framework/utils/telnet/telnet_session.go +++ b/src/framework/telnet/telnet_session.go @@ -47,11 +47,11 @@ func (s *TelnetClientSession) Read() []byte { buf := make([]byte, 1024) // 设置读取超时时间为100毫秒 s.Client.SetReadDeadline(time.Now().Add(100 * time.Millisecond)) - _, err := s.Client.Read(buf) + n, err := s.Client.Read(buf) if err != nil { return []byte{} } - return buf + return buf[:n] } // CombinedOutput 发送命令带结果返回 diff --git a/src/modules/network_data/controller/udm_auth.go b/src/modules/network_data/controller/udm_auth.go index 525f5a6a..d2272d7b 100644 --- a/src/modules/network_data/controller/udm_auth.go +++ b/src/modules/network_data/controller/udm_auth.go @@ -8,10 +8,10 @@ import ( "be.ems/src/framework/constants/uploadsubpath" "be.ems/src/framework/i18n" + "be.ems/src/framework/telnet" "be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/file" "be.ems/src/framework/utils/parse" - "be.ems/src/framework/utils/telnet" "be.ems/src/framework/vo/result" "be.ems/src/modules/network_data/model" neDataService "be.ems/src/modules/network_data/service" diff --git a/src/modules/network_data/controller/udm_sub.go b/src/modules/network_data/controller/udm_sub.go index 68844371..bfd71a09 100644 --- a/src/modules/network_data/controller/udm_sub.go +++ b/src/modules/network_data/controller/udm_sub.go @@ -9,10 +9,10 @@ import ( "be.ems/src/framework/constants/uploadsubpath" "be.ems/src/framework/i18n" + "be.ems/src/framework/telnet" "be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/file" "be.ems/src/framework/utils/parse" - "be.ems/src/framework/utils/telnet" "be.ems/src/framework/vo/result" "be.ems/src/modules/network_data/model" neDataService "be.ems/src/modules/network_data/service" diff --git a/src/modules/network_element/controller/ne_host.go b/src/modules/network_element/controller/ne_host.go index 57685740..7f8b9cdc 100644 --- a/src/modules/network_element/controller/ne_host.go +++ b/src/modules/network_element/controller/ne_host.go @@ -4,10 +4,10 @@ import ( "strings" "be.ems/src/framework/i18n" + "be.ems/src/framework/telnet" "be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/parse" "be.ems/src/framework/utils/ssh" - "be.ems/src/framework/utils/telnet" "be.ems/src/framework/vo/result" "be.ems/src/modules/network_element/model" neService "be.ems/src/modules/network_element/service" diff --git a/src/modules/network_element/service/ne_info.go b/src/modules/network_element/service/ne_info.go index 054e91b2..94e08e63 100644 --- a/src/modules/network_element/service/ne_info.go +++ b/src/modules/network_element/service/ne_info.go @@ -1,8 +1,8 @@ package service import ( + "be.ems/src/framework/telnet" "be.ems/src/framework/utils/ssh" - "be.ems/src/framework/utils/telnet" "be.ems/src/modules/network_element/model" ) diff --git a/src/modules/network_element/service/ne_info.impl.go b/src/modules/network_element/service/ne_info.impl.go index e3b1a029..6de019c7 100644 --- a/src/modules/network_element/service/ne_info.impl.go +++ b/src/modules/network_element/service/ne_info.impl.go @@ -11,9 +11,9 @@ import ( "be.ems/src/framework/constants/cachekey" "be.ems/src/framework/logger" "be.ems/src/framework/redis" + "be.ems/src/framework/telnet" "be.ems/src/framework/utils/parse" "be.ems/src/framework/utils/ssh" - "be.ems/src/framework/utils/telnet" neFetchlink "be.ems/src/modules/network_element/fetch_link" "be.ems/src/modules/network_element/model" "be.ems/src/modules/network_element/repository" diff --git a/src/modules/ws/controller/ws.go b/src/modules/ws/controller/ws.go index 4ff3def6..1b78ed73 100644 --- a/src/modules/ws/controller/ws.go +++ b/src/modules/ws/controller/ws.go @@ -10,10 +10,10 @@ import ( "be.ems/src/framework/i18n" "be.ems/src/framework/logger" + "be.ems/src/framework/telnet" "be.ems/src/framework/utils/ctx" "be.ems/src/framework/utils/parse" "be.ems/src/framework/utils/ssh" - "be.ems/src/framework/utils/telnet" "be.ems/src/framework/vo/result" "be.ems/src/modules/ws/service" "github.com/gin-gonic/gin" @@ -286,10 +286,6 @@ func (s *WSController) Telnet(c *gin.Context) { go s.wsService.ClientWriteListen(wsClient) go s.wsService.ClientReadListen(wsClient, service.ReceiveTelnet) - // 等待1秒,排空首次消息 - time.Sleep(1 * time.Second) - _ = clientSession.Read() - // 实时读取Telnet消息直接输出 msTicker := time.NewTicker(100 * time.Millisecond) defer msTicker.Stop() @@ -298,7 +294,7 @@ func (s *WSController) Telnet(c *gin.Context) { case ms := <-msTicker.C: outputByte := clientSession.Read() if len(outputByte) > 0 { - outputStr := strings.TrimRight(string(outputByte), "\x00") + outputStr := string(outputByte) msgByte, _ := json.Marshal(result.Ok(map[string]any{ "requestId": fmt.Sprintf("telnet_%s_%d", neHost.HostID, ms.UnixMilli()), "data": outputStr, diff --git a/src/modules/ws/service/ws_receive.impl.go b/src/modules/ws/service/ws_receive.impl.go index e946d9ac..918efcc5 100644 --- a/src/modules/ws/service/ws_receive.impl.go +++ b/src/modules/ws/service/ws_receive.impl.go @@ -7,8 +7,8 @@ import ( "time" "be.ems/src/framework/logger" + "be.ems/src/framework/telnet" "be.ems/src/framework/utils/ssh" - "be.ems/src/framework/utils/telnet" "be.ems/src/framework/vo/result" "be.ems/src/modules/ws/model" "be.ems/src/modules/ws/processor" @@ -234,9 +234,8 @@ func (s *WSReceiveImpl) Telnet(client *model.WSClient, reqMsg model.WSRequest) { } err = json.Unmarshal(msgByte, &data) if err == nil { - telnetClientSession := client.ChildConn.(*telnet.TelnetClientSession) - err = telnetClientSession.WindowChange(data.Rows, data.Cols) - _ = telnetClientSession.Read() + // telnetClientSession := client.ChildConn.(*telnet.TelnetClientSession) + // _ = telnetClientSession.WindowChange(data.Rows, data.Cols) } default: err = fmt.Errorf("message type %s not supported", reqMsg.Type)