路径中的 golang 和 go-socket.io 参数

问题描述

我需要像这样向页面发送一个参数(每次我调用新聊天时都会有不同的代码

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 {...})

enter image description here

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...