mirror of
https://github.com/bingohuang/docker-labs.git
synced 2025-07-17 20:57:29 +08:00
Remove writer if websocket disconnects
This commit is contained in:
parent
b3e7dcae3b
commit
97f39ca375
@ -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)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user