diff --git a/server/api/term_handler.go b/server/api/term_handler.go index bb9565d..5728127 100644 --- a/server/api/term_handler.go +++ b/server/api/term_handler.go @@ -83,13 +83,8 @@ func (r *TermHandler) writeToWebsocket() { if r.isRecording { _ = r.nextTerminal.Recorder.WriteData(s) } - nextSession := session.GlobalSessionManager.GetById(r.sessionId) // 监控 - if nextSession != nil && nextSession.Observer != nil { - nextSession.Observer.Range(func(key string, ob *session.Session) { - _ = ob.WriteMessage(dto.NewMessage(Data, s)) - }) - } + SendObData(r.sessionId, s) buf = []byte{} } case data := <-r.dataChan: @@ -113,3 +108,12 @@ func (r *TermHandler) WriteMessage(msg dto.Message) error { message := []byte(msg.ToString()) return r.webSocket.WriteMessage(websocket.TextMessage, message) } + +func SendObData(sessionId, s string) { + nextSession := session.GlobalSessionManager.GetById(sessionId) + if nextSession != nil && nextSession.Observer != nil { + nextSession.Observer.Range(func(key string, ob *session.Session) { + _ = ob.WriteMessage(dto.NewMessage(Data, s)) + }) + } +} diff --git a/server/sshd/writer.go b/server/sshd/writer.go index 06c07fb..741e065 100644 --- a/server/sshd/writer.go +++ b/server/sshd/writer.go @@ -5,8 +5,6 @@ import ( "strings" "next-terminal/server/api" - "next-terminal/server/dto" - "next-terminal/server/global/session" "next-terminal/server/term" "github.com/gliderlabs/ssh" @@ -51,24 +49,15 @@ func (w *Writer) Write(p []byte) (n int, err error) { if err != nil { return 0, err } - sendObData(w.sessionId, s) + api.SendObData(w.sessionId, s) } } else { err := w.recorder.WriteData(s) if err != nil { return 0, err } - sendObData(w.sessionId, s) + api.SendObData(w.sessionId, s) } } return (*w.sess).Write(p) } - -func sendObData(sessionId, s string) { - nextSession := session.GlobalSessionManager.GetById(sessionId) - if nextSession != nil && nextSession.Observer != nil { - nextSession.Observer.Range(func(key string, ob *session.Session) { - _ = ob.WriteMessage(dto.NewMessage(api.Data, s)) - }) - } -}