登录
首页 >  Golang >  Go问答

在路径中使用 golang 和 go-socket.io 参数

来源:stackoverflow

时间:2024-03-09 22:48:26 266浏览 收藏

偷偷努力,悄无声息地变强,然后惊艳所有人!哈哈,小伙伴们又来学习啦~今天我将给大家介绍《在路径中使用 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", 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))
}

解决方案


我想向html发送一个参数

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

今天关于《在路径中使用 golang 和 go-socket.io 参数》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于的内容请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>