通过list建立websocket
This commit is contained in:
@@ -19,9 +19,48 @@ import (
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/gorilla/mux"
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
|
||||
var images_websocket_manager = models.NewWebSocketManager()
|
||||
|
||||
func ImagesGet(w http.ResponseWriter, r *http.Request) {
|
||||
|
||||
// websocket 推理图像
|
||||
if r.Header.Get("Upgrade") == "websocket" {
|
||||
upgrader := websocket.Upgrader{}
|
||||
conn, err := upgrader.Upgrade(w, r, nil)
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
defer conn.Close()
|
||||
|
||||
task := r.URL.Query().Get("task")
|
||||
if task == "" {
|
||||
w.WriteHeader(http.StatusBadRequest)
|
||||
w.Write([]byte("task 参数不能为空"))
|
||||
return
|
||||
}
|
||||
|
||||
wsid := images_websocket_manager.AddConnection(conn)
|
||||
defer images_websocket_manager.RemoveConnection(wsid)
|
||||
|
||||
for {
|
||||
_, msg, err := conn.ReadMessage()
|
||||
if err != nil {
|
||||
log.Println(err)
|
||||
return
|
||||
}
|
||||
log.Println(string(msg))
|
||||
if string(msg) == "close" {
|
||||
break
|
||||
}
|
||||
}
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
var listview models.ListView
|
||||
listview.Page = utils.ParamInt(r.URL.Query().Get("page"), 1)
|
||||
listview.PageSize = utils.ParamInt(r.URL.Query().Get("pageSize"), 10)
|
||||
@@ -67,8 +106,10 @@ func ImagesPost(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
// 直接创建一组图片
|
||||
// TODO: 创建任务获得任务编号, 多张图时期望可以流式推理
|
||||
task := uuid.New().String()
|
||||
|
||||
// 直接创建一组图片
|
||||
var image_list []models.Image
|
||||
for i := 0; i < template.Number; i++ {
|
||||
var image models.Image
|
||||
|
Reference in New Issue
Block a user