Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit04a92a4

Browse files
chore: useWebsocketNetConn
1 parentcd0c2d5 commit04a92a4

File tree

2 files changed

+15
-15
lines changed

2 files changed

+15
-15
lines changed

‎agent/agentcontainers/api.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package agentcontainers
22

33
import (
44
"context"
5+
"encoding/json"
56
"errors"
67
"fmt"
78
"maps"
@@ -29,7 +30,6 @@ import (
2930
"github.com/coder/coder/v2/coderd/httpapi"
3031
"github.com/coder/coder/v2/codersdk"
3132
"github.com/coder/coder/v2/codersdk/agentsdk"
32-
"github.com/coder/coder/v2/codersdk/wsjson"
3333
"github.com/coder/coder/v2/provisioner"
3434
"github.com/coder/quartz"
3535
"github.com/coder/websocket"
@@ -561,13 +561,10 @@ func (api *API) watchContainers(rw http.ResponseWriter, r *http.Request) {
561561
return
562562
}
563563

564-
ctx=api.ctx
564+
ctx,wsNetConn:=codersdk.WebsocketNetConn(ctx,conn,websocket.MessageText)
565+
deferwsNetConn.Close()
565566

566567
gohttpapi.Heartbeat(ctx,conn)
567-
deferconn.Close(websocket.StatusNormalClosure,"connection closed")
568-
569-
encoder:=wsjson.NewEncoder[codersdk.WorkspaceAgentListContainersResponse](conn,websocket.MessageText)
570-
deferencoder.Close(websocket.StatusNormalClosure)
571568

572569
updateCh:=make(chanstruct{},1)
573570

@@ -586,6 +583,9 @@ func (api *API) watchContainers(rw http.ResponseWriter, r *http.Request) {
586583

587584
for {
588585
select {
586+
case<-api.ctx.Done():
587+
return
588+
589589
case<-ctx.Done():
590590
return
591591

@@ -596,7 +596,7 @@ func (api *API) watchContainers(rw http.ResponseWriter, r *http.Request) {
596596
continue
597597
}
598598

599-
iferr:=encoder.Encode(ct);err!=nil {
599+
iferr:=json.NewEncoder(wsNetConn).Encode(ct);err!=nil {
600600
api.logger.Error(ctx,"encode container list",slog.Error(err))
601601
return
602602
}

‎coderd/workspaceagents.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,7 @@ func (api *API) watchWorkspaceAgentContainers(rw http.ResponseWriter, r *http.Re
817817

818818
// If the agent is unreachable, the request will hang. Assume that if we
819819
// don't get a response after 30s that the agent is unreachable.
820-
ctx,cancel:=context.WithTimeout(ctx,30*time.Second)
820+
dialCtx,cancel:=context.WithTimeout(ctx,30*time.Second)
821821
defercancel()
822822
apiAgent,err:=db2sdk.WorkspaceAgent(
823823
api.DERPMap(),
@@ -843,7 +843,7 @@ func (api *API) watchWorkspaceAgentContainers(rw http.ResponseWriter, r *http.Re
843843
return
844844
}
845845

846-
agentConn,release,err:=api.agentProvider.AgentConn(ctx,workspaceAgent.ID)
846+
agentConn,release,err:=api.agentProvider.AgentConn(dialCtx,workspaceAgent.ID)
847847
iferr!=nil {
848848
httpapi.Write(ctx,rw,http.StatusInternalServerError, codersdk.Response{
849849
Message:"Internal error dialing workspace agent.",
@@ -873,21 +873,21 @@ func (api *API) watchWorkspaceAgentContainers(rw http.ResponseWriter, r *http.Re
873873
return
874874
}
875875

876-
ctx=api.ctx
876+
ctx,wsNetConn:=codersdk.WebsocketNetConn(ctx,conn,websocket.MessageText)
877+
deferwsNetConn.Close()
877878

878879
gohttpapi.Heartbeat(ctx,conn)
879-
deferconn.Close(websocket.StatusNormalClosure,"connection closed")
880-
881-
encoder:=wsjson.NewEncoder[codersdk.WorkspaceAgentListContainersResponse](conn,websocket.MessageText)
882-
deferencoder.Close(websocket.StatusNormalClosure)
883880

884881
for {
885882
select {
883+
case<-api.ctx.Done():
884+
return
885+
886886
case<-ctx.Done():
887887
return
888888

889889
casecontainers:=<-containersCh:
890-
iferr:=encoder.Encode(containers);err!=nil {
890+
iferr:=json.NewEncoder(wsNetConn).Encode(containers);err!=nil {
891891
api.Logger.Error(ctx,"encode containers",slog.Error(err))
892892
return
893893
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp