diff --git a/shell/shell_http.go b/shell/shell_http.go index 350fd09..88a32ad 100644 --- a/shell/shell_http.go +++ b/shell/shell_http.go @@ -176,17 +176,14 @@ func getWebShell(recDir string) gin.HandlerFunc { } } else if opData.Op == "resize" { - fmt.Println("resize") - value, ok := opData.Data.(ResizeDataType) - if ok { - err = proc.SetSize(value.Cols, value.Rows) - if err != nil { - logrus.Errorf("重置大小错误 %d bytes", n) - } else { - fmt.Println("重置大小成功") + // Data 反序列化后是 map[string]interface{}, 不能直接断言 ResizeDataType + // (此前断言恒失败, 前端 resize 被静默吞掉, PTY 固定 180x30) + raw, merr := json.Marshal(opData.Data) + var size ResizeDataType + if merr == nil && json.Unmarshal(raw, &size) == nil && size.Cols > 0 && size.Rows > 0 { + if serr := proc.SetSize(size.Cols, size.Rows); serr != nil { + logrus.Errorf("重置大小错误: %s", serr.Error()) } - } else { - } }