问题描述
我需要像这样向页面发送一个参数(每次我调用新聊天时都会有不同的代码)
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",msg string) {...})
server.OnError("/",func(s socketio.Conn,e error) {...})
server.Ondisconnect("/",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))
}
解决方法
我想向html发送一个参数
一个。 (img1) 放置http://192.168.0.10:3000/chat/15(id=15 是参数)
B. (img2) 在参数中它是在函数中接收的(通过“labstack/echo/v4”) e.GET("chat/:id",func(c echo.Context) 错误{} 在这里,我已经有了价值。 现在,如何将 id (15) 传递给 html?我想给你发送 id=15
c.这个返回 c.Redirect(http.StatusTemporaryRedirect,"/chat.html") 我所做的是加载以下 http://192.168.0.10:3000/chat.html
d。 (img3) 这里的参数 (id=15) 必须到达或以某种方式 (img4) server.OnConnect("/",func(so socketio.Conn) error {...})