草庐IT

gorilla-toolkit

全部标签

Go Gorilla Websockets ~ 在 ping/pong 失败(用户断开连接)时调用函数?

我正在使用Golang和Gorilla的Websocket工具包编写一个聊天程序。我想知道是否有一种方法可以在用户断开连接或ping/pong消息失败时运行一个函数。我需要这个来从变量等中删除它们。有什么简单的方法可以做到这一点吗? 最佳答案 当读取方法(NextReader、ReadMessage)返回错误时,应用程序应关闭连接和清理变量等。使用ping/pong检测断开连接。chatexample显示如何执行此操作。Sendpings定期。Setreaddeadline比下一次预期的乒乓球时间短。Resetthereaddead

golang gorilla/session 在检查 session 时得到 nil 值

我已经将包导入为import("github.com/gorilla/sessions""github.com/gorilla/mux"//CORS"github.com/rs/cors""github.com/justinas/alice")定义store和main方法如下varstore=sessions.NewCookieStore([]byte("something-very-secret"))constMy_UI="http://localhost:3000"funcinit(){store.Options=&sessions.Options{Path:"/",MaxAge:

golang gorilla/session 在检查 session 时得到 nil 值

我已经将包导入为import("github.com/gorilla/sessions""github.com/gorilla/mux"//CORS"github.com/rs/cors""github.com/justinas/alice")定义store和main方法如下varstore=sessions.NewCookieStore([]byte("something-very-secret"))constMy_UI="http://localhost:3000"funcinit(){store.Options=&sessions.Options{Path:"/",MaxAge:

go - 在 `NewCookieStore()` 中传递给 `gorilla/sessions` 的 secret key (或身份验证 key )应该是什么?

在gorilla/sessions,funcNewCookieStore(keyPairs...[]byte)*CookieStore用于创建新的CookieStore。但我实际上并不知道什么是secretkey(或身份验证key)。描述是这样说的:Itisrecommendedtouseanauthenticationkeywith32or64bytes.因此,这是否意味着我可以随机推送任何长度为32或64的字符串?您如何选择身份验证key? 最佳答案 NewCookieStore文档中该段的末尾:Usetheconvenienc

go - 在 `NewCookieStore()` 中传递给 `gorilla/sessions` 的 secret key (或身份验证 key )应该是什么?

在gorilla/sessions,funcNewCookieStore(keyPairs...[]byte)*CookieStore用于创建新的CookieStore。但我实际上并不知道什么是secretkey(或身份验证key)。描述是这样说的:Itisrecommendedtouseanauthenticationkeywith32or64bytes.因此,这是否意味着我可以随机推送任何长度为32或64的字符串?您如何选择身份验证key? 最佳答案 NewCookieStore文档中该段的末尾:Usetheconvenienc

url - 如何使用 gorilla/mux 将 URL 拆分为多个文件?

我的目录结构是这样的:myapp/|+--moduleX|||+--views.go|+--start.go应用从start.go开始然后我从那里配置所有路由并从moduleX/views.go导入处理程序像这样:packagemainimport("net/http""github.com/gorilla/mux""myapp/moduleX")funcmain(){r:=mux.NewRouter()http.Handle("/static/",http.StripPrefix("/static/",http.FileServer(http.Dir("./templates/sta

url - 如何使用 gorilla/mux 将 URL 拆分为多个文件?

我的目录结构是这样的:myapp/|+--moduleX|||+--views.go|+--start.go应用从start.go开始然后我从那里配置所有路由并从moduleX/views.go导入处理程序像这样:packagemainimport("net/http""github.com/gorilla/mux""myapp/moduleX")funcmain(){r:=mux.NewRouter()http.Handle("/static/",http.StripPrefix("/static/",http.FileServer(http.Dir("./templates/sta

go - 如何使用 Gorilla Mux 在 GET 请求中进行可选查询?

我希望我的一些查询参数是可选的。至于现在,我有r.HandleFunc("/user",userByValueHandler).Queries("username","{username}","email","{email}",).Methods("GET")但在这种情况下,“用户名”和“电子邮件”需要出现在请求中。我想有更灵活的选择:有2个或只有一个(但不是零参数)。谢谢! 最佳答案 所以我找到了将我的逻辑重写为的解决方案:r.HandleFunc("/user",UserByValueHandler).Methods("GET"

go - 如何使用 Gorilla Mux 在 GET 请求中进行可选查询?

我希望我的一些查询参数是可选的。至于现在,我有r.HandleFunc("/user",userByValueHandler).Queries("username","{username}","email","{email}",).Methods("GET")但在这种情况下,“用户名”和“电子邮件”需要出现在请求中。我想有更灵活的选择:有2个或只有一个(但不是零参数)。谢谢! 最佳答案 所以我找到了将我的逻辑重写为的解决方案:r.HandleFunc("/user",UserByValueHandler).Methods("GET"

go - 无法按键获取 gorilla session 值

我无法通过这种方式从session中获取值,它是nil:session:=initSession(r)valWithOutType:=session.Values[key]完整代码:packagemainimport("fmt""github.com/gorilla/mux""github.com/gorilla/sessions""log""net/http")funcmain(){rtr:=mux.NewRouter()rtr.HandleFunc("/setSession",handler1).Methods("GET")rtr.HandleFunc("/getSession",