Fully Working Network Peers

This commit is contained in:
mr
2026-04-01 11:27:05 +02:00
parent 8c6b047ab6
commit bc7b1a2f29
10 changed files with 345 additions and 356 deletions

View File

@@ -17,10 +17,17 @@ import (
oclib "cloud.o-forge.io/core/oc-lib"
"cloud.o-forge.io/core/oc-lib/tools"
beego "github.com/beego/beego/v2/server/web"
"github.com/gorilla/websocket"
)
var upgrader = websocket.Upgrader{
CheckOrigin: func(r *http.Request) bool {
return true
},
}
func init() {
ns := beego.NewNamespace("/oc/",
ns := beego.NewNamespace("/oc",
beego.NSNamespace("/status",
beego.NSInclude(
&controllers.StatusController{},
@@ -40,6 +47,11 @@ func init() {
// WebSocket route enregistrée en dehors du pipeline Beego
// beego.Handler bypasse le controller pipeline (pas de WriteHeader parasite)
beego.Handler("/oc/decentralized/search/:search", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
conn, err := upgrader.Upgrade(w, r, nil)
if err != nil {
return
}
defer conn.Close()
parts := strings.Split(strings.TrimSuffix(r.URL.Path, "/"), "/")
search := parts[len(parts)-1]
@@ -50,6 +62,6 @@ func init() {
DataType: tools.PEER.EnumIndex(),
Payload: b,
})
controllers.Websocket(r.Context(), user, w, r)
controllers.Websocket(r.Context(), user, conn)
}))
}