websocket

This commit is contained in:
XM-GO
2023-04-14 17:14:49 +08:00
parent 5852896a32
commit c8418bc969
12 changed files with 296 additions and 5 deletions

View File

@@ -6,13 +6,16 @@ package api
// 生成人panda
// ==========================================================================
import (
"github.com/XM-GO/PandaKit/biz"
"github.com/XM-GO/PandaKit/model"
"github.com/XM-GO/PandaKit/restfulx"
"github.com/emicklei/go-restful/v3"
"github.com/kakuilan/kgo"
"strings"
"pandax/apps/visual/entity"
"pandax/apps/visual/services"
pxSocket "pandax/pkg/websocket"
)
type VisualScreenApi struct {
@@ -76,3 +79,24 @@ func (p *VisualScreenApi) UpdateScreenStatus(rc *restfulx.ReqCtx) {
restfulx.BindQuery(rc, &screen)
p.VisualScreenApp.Update(screen)
}
func (p *VisualScreenApi) ScreenTwin(request *restful.Request, response *restful.Response) {
screenId := request.QueryParameter("screenId")
biz.IsTrue(screenId != "", "请传组态Id")
newWebsocket, err := pxSocket.NewWebsocket(response.ResponseWriter, request.Request, nil)
biz.ErrIsNil(err, "创建Websocket失败")
if err != nil {
return
}
pxSocket.AddWebSocketByScreenId(screenId, newWebsocket)
go func() {
for {
_, message, err := newWebsocket.Conn.ReadMessage()
if err != nil {
return
}
pxSocket.OnMessage(string(message))
}
}()
}