#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) ошибка {…})