优化代码
This commit is contained in:
@ -139,8 +139,7 @@ func (api GuacamoleApi) Guacamole(c echo.Context) error {
|
||||
}
|
||||
|
||||
nextSession.Observer = session.NewObserver(sessionId)
|
||||
session.GlobalSessionManager.Add <- nextSession
|
||||
go nextSession.Observer.Start()
|
||||
session.GlobalSessionManager.Add(nextSession)
|
||||
sess := model.Session{
|
||||
ConnectionId: guacdTunnel.UUID,
|
||||
Width: intWidth,
|
||||
@ -254,7 +253,7 @@ func (api GuacamoleApi) GuacamoleMonitor(c echo.Context) error {
|
||||
return nil
|
||||
}
|
||||
nextSession.ID = utils.UUID()
|
||||
forObsSession.Observer.Add <- nextSession
|
||||
forObsSession.Observer.Add(nextSession)
|
||||
log.Debugf("[%v:%v] 观察者[%v]加入会话[%v]", sessionId, connectionId, nextSession.ID, s.ConnectionId)
|
||||
|
||||
guacamoleHandler := NewGuacamoleHandler(ws, guacdTunnel)
|
||||
@ -269,7 +268,7 @@ func (api GuacamoleApi) GuacamoleMonitor(c echo.Context) error {
|
||||
_ = guacdTunnel.Close()
|
||||
|
||||
observerId := nextSession.ID
|
||||
forObsSession.Observer.Del <- observerId
|
||||
forObsSession.Observer.Del(observerId)
|
||||
log.Debugf("[%v:%v] 观察者[%v]退出会话", sessionId, connectionId, observerId)
|
||||
return nil
|
||||
}
|
||||
|
@ -35,7 +35,7 @@ func (api SecurityApi) SecurityCreateEndpoint(c echo.Context) error {
|
||||
Rule: item.Rule,
|
||||
Priority: item.Priority,
|
||||
}
|
||||
security.GlobalSecurityManager.Add <- rule
|
||||
security.GlobalSecurityManager.Add(rule)
|
||||
|
||||
return Success(c, "")
|
||||
}
|
||||
@ -72,14 +72,14 @@ func (api SecurityApi) SecurityUpdateEndpoint(c echo.Context) error {
|
||||
return err
|
||||
}
|
||||
// 更新内存中的安全规则
|
||||
security.GlobalSecurityManager.Del <- id
|
||||
security.GlobalSecurityManager.Del(id)
|
||||
rule := &security.Security{
|
||||
ID: item.ID,
|
||||
IP: item.IP,
|
||||
Rule: item.Rule,
|
||||
Priority: item.Priority,
|
||||
}
|
||||
security.GlobalSecurityManager.Add <- rule
|
||||
security.GlobalSecurityManager.Add(rule)
|
||||
|
||||
return Success(c, nil)
|
||||
}
|
||||
@ -94,7 +94,7 @@ func (api SecurityApi) SecurityDeleteEndpoint(c echo.Context) error {
|
||||
return err
|
||||
}
|
||||
// 更新内存中的安全规则
|
||||
security.GlobalSecurityManager.Del <- id
|
||||
security.GlobalSecurityManager.Del(id)
|
||||
}
|
||||
|
||||
return Success(c, nil)
|
||||
|
@ -152,7 +152,7 @@ func (api WebTerminalApi) SshEndpoint(c echo.Context) error {
|
||||
NextTerminal: nextTerminal,
|
||||
Observer: session.NewObserver(s.ID),
|
||||
}
|
||||
session.GlobalSessionManager.Add <- nextSession
|
||||
session.GlobalSessionManager.Add(nextSession)
|
||||
|
||||
termHandler := NewTermHandler(sessionId, isRecording, ws, nextTerminal)
|
||||
termHandler.Start()
|
||||
@ -239,14 +239,14 @@ func (api WebTerminalApi) SshMonitorEndpoint(c echo.Context) error {
|
||||
Mode: s.Mode,
|
||||
WebSocket: ws,
|
||||
}
|
||||
nextSession.Observer.Add <- obSession
|
||||
nextSession.Observer.Add(obSession)
|
||||
log.Debugf("会话 %v 观察者 %v 进入", sessionId, obId)
|
||||
|
||||
for {
|
||||
_, _, err := ws.ReadMessage()
|
||||
if err != nil {
|
||||
log.Debugf("会话 %v 观察者 %v 退出", sessionId, obId)
|
||||
nextSession.Observer.Del <- obId
|
||||
nextSession.Observer.Del(obId)
|
||||
break
|
||||
}
|
||||
}
|
||||
|
@ -85,11 +85,10 @@ func (r *TermHandler) writeToWebsocket() {
|
||||
}
|
||||
nextSession := session.GlobalSessionManager.GetById(r.sessionId)
|
||||
// 监控
|
||||
if nextSession != nil && len(nextSession.Observer.All()) > 0 {
|
||||
obs := nextSession.Observer.All()
|
||||
for _, ob := range obs {
|
||||
if nextSession != nil && nextSession.Observer != nil {
|
||||
nextSession.Observer.Range(func(key string, ob *session.Session) {
|
||||
_ = ob.WriteMessage(dto.NewMessage(Data, s))
|
||||
}
|
||||
})
|
||||
}
|
||||
buf = []byte{}
|
||||
}
|
||||
|
Reference in New Issue
Block a user