golang и go-сокет.параметры ввода-вывода в пути

#go #eco

# #Вперед #эко

Вопрос:

Мне нужно отправить параметр на страницу следующим образом (каждый раз, когда я вызываю новый чат, у него будет другой код)

http://192.168.0.10:3000/chat.html /**?mycode1**

http://192.168.0.10:3000/chat.html /**?mycode2**

Вопрос: Как и где параметры, полученные на сервере?

 //--
import (
    socketio github.com/googollee/go-socket.io
    github.com/labstack/echo/v4
    github.com/labstack/echo/v4/middleware
    golang.org/x/crypto/acme/autocert
)

func main() {

    //----------------------
    // socket
    //----------------------
    server, err := socketio.NewServer(nil)
    if err != nil {
        log.Fatal(err)
    }   
    server.OnConnect("/", func(so socketio.Conn) error {...})
    server.OnEvent("/", "register", func(so socketio.Conn, name string) {...})
    server.OnEvent("/", "chat message", func(so socketio.Conn, msg string) {...})
    server.OnError("/", func(s socketio.Conn, e error) {...})
    server.OnDisconnect("/", func(s socketio.Conn, reason string) {...})
    go server.Serve()
    defer server.Close()


    //----------------------
    //-- server echo 
    //----------------------
    e := echo.New()

    port := os.Getenv("PORT")
    if port == "" {
        port = "3000"
    }

    // routes   
    e.Static("/", "public")
    e.GET("/socket.io/:id", func(context echo.Context) error {
        aa := context.Param("id")
        //aa := context.QueryParam("id")
        fmt.Printf("XXXXXXXXXXX esto es el parametro %v n", aa)

        server.ServeHTTP(context.Response(), context.Request())
        return nil
    })
    
    // ok this work no parameter
    //  e.Any("/socket.io/", func(context echo.Context) error {
    //  server.ServeHTTP(context.Response(), context.Request())
    //  return nil
    // })

    //-- ejecucion del servidor 
    e.Logger.Fatal(e.Start(":"   port))
}
 

Ответ №1:

Я хочу отправить параметр в html

a. (img1) Поместите http://192.168.0.10:3000/chat/15 (id=15 — это параметр)

b. (img2) В параметре он принимается (с помощью «labstack/echo/v4») в функции e.GET(«чат /:идентификатор», функция (c echo.Контекст) ошибка {} Здесь у меня уже есть значение. Теперь, как мне передать идентификатор (15) в html? Я хочу отправить вам идентификатор = 15

c. Это возвращает c.Перенаправление (http.StatusTemporaryRedirect, «/chat.html «) что я делаю, так это загружаю следующее http://192.168.0.10:3000/chat.html

d. (img3) Здесь параметр (id=15) должен поступить или каким-то образом (img4) сервер.OnConnect(«/», функция(so socketio.Conn) ошибка {…})

введите описание изображения здесь