mirror of
https://github.com/bingohuang/docker-labs.git
synced 2025-10-05 09:53:21 +08:00
Remove writer if websocket disconnects
This commit is contained in:
@@ -39,8 +39,8 @@ func Exec(ws *websocket.Conn) {
|
|||||||
instance.Stdout.AddWriter(u1.String(), ws)
|
instance.Stdout.AddWriter(u1.String(), ws)
|
||||||
go func() {
|
go func() {
|
||||||
io.Copy(instance.Stdout, instance.Conn.Reader)
|
io.Copy(instance.Stdout, instance.Conn.Reader)
|
||||||
|
instance.Stdout.RemoveWriter(u1.String())
|
||||||
}()
|
}()
|
||||||
defer conn.Close()
|
|
||||||
go func() {
|
go func() {
|
||||||
io.Copy(instance.Conn.Conn, ws)
|
io.Copy(instance.Conn.Conn, ws)
|
||||||
}()
|
}()
|
||||||
@@ -53,6 +53,7 @@ func Exec(ws *websocket.Conn) {
|
|||||||
|
|
||||||
go func() {
|
go func() {
|
||||||
io.Copy(instance.Conn.Conn, ws)
|
io.Copy(instance.Conn.Conn, ws)
|
||||||
|
instance.Stdout.RemoveWriter(u1.String())
|
||||||
}()
|
}()
|
||||||
select {
|
select {
|
||||||
case <-ctx.Done():
|
case <-ctx.Done():
|
||||||
|
@@ -27,6 +27,7 @@ func NewSession() (*types.Session, error) {
|
|||||||
s = GetSession(s.Id)
|
s = GetSession(s.Id)
|
||||||
log.Printf("Starting clean up of session [%s]\n", s.Id)
|
log.Printf("Starting clean up of session [%s]\n", s.Id)
|
||||||
for _, i := range s.Instances {
|
for _, i := range s.Instances {
|
||||||
|
i.Conn.Close()
|
||||||
if err := DeleteContainer(i.Name); err != nil {
|
if err := DeleteContainer(i.Name); err != nil {
|
||||||
log.Println(err)
|
log.Println(err)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user