问题标签 [go-gin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
go - 如何确保 redis 订阅者在 Go (Golang) 中接收消息?
我正在使用 gin 框架来构建 API 服务器。一般来说,我正在构建 2 个项目。项目'API'
和项目'SOCKET'
。Project'API'
是 Android 中使用的主要 REST API,使用gin
框架(golang)开发。而 Project'SOCKET'
是客户端的套接字服务器,它将使用套接字连接,使用 node.js( Socket.IO
)
这个过程是这样开始的:
用户 A:作为请求者;A连接到"API"
用户B:作为响应者;B 连接到"SOCKET"
User A
从 android调用 API requestData
,请求将由"API"
的项目处理。Project"API"
将记录请求,并在 redis 上发布为new_request
使用 pubsub
这是例如代码:
}
在 Project"SOCKET"
中,有一个订阅者将监听发生的每个发布,并将新消息发布到频道,responseclient
这是示例代码:
})
如果用户 B 连接到 Socket.IO ,这将顺利进行。但是如果用户 B离线,或者没有连接到 socket.io,这将等待很长时间,直到我们手动终止或直到用户 B 在线
我要的是:
- 我们可以
callback
在 redis pub/sub 上创建类似的东西吗?如果订阅者由于离线或其他原因不接受消息,我们将关闭连接。这可能吗 ? - 在 Node.Js 中我知道我可以使用超时功能,如果在特定时间没有收到消息,它将关闭订阅或发出任何事件,如何在 golang 上执行此操作?我需要通知
User A
ifUser B
是活动的还是离线的,所以他可以等待另一个时间来创建请求。 - 如果什么都做不到,你对我有什么建议?
我希望我的问题,可以理解,并且可以很好地回答。
*一些代码可能,缺少变量。
** 我将这个库用于 golang redis:go-redis
go - 如何从 go *gin.context 对象中获取所有查询参数
我正在查看https://godoc.org/github.com/gin-gonic/gin
一种方法的文档,该方法返回传递的所有查询参数的列表。有一些方法可以返回查询参数的值。是否有任何方法可以返回传递的所有查询参数的列表?如果我们没有得到值也没关系。我正在使用以下代码获取查询参数的值。但是这段代码只能检查查询参数是否存在。
session - 如何使用“contrib/sessions”包 gin gonic 为 cookie golang 设置域
请帮我!。我想为我的 cookie 设置域,在我的主要功能中,我设置:
在我的第一个处理函数中,我设置:
在另一个处理程序中,我通过以下方式获得“测试”会话:
但问题是结果的值为零,如果我删除
在主要功能中,它将起作用。所以任何人都可以为我解释。此外,如果我在我的第一个处理程序函数中获得会话“测试”,那就没问题了。
go - 不支持扫描,将 driver.Value 类型 []uint8 存储为 *[]string 类型
我已经rest api
使用golang
,gin
和gorp
在POST
发送请求时:
这将数据保存到mysql
数据库,完美运行。
用于从数据库实现的GET
请求中检索数据
GET
查询不提供数据库中的任何数据,log.Println(err)
日志说:
有任何想法吗?
go - gorm db.find(&users) 到 golang 中带有 gin 的 json
这是我的 GET 方法,问题是我在 json 中得到的只是一个用户,而不是我的数据库中有 3 个用户。
html - 如何在 Gin 上返回 html?
我正在尝试呈现已经在字符串上的 HTML,而不是在 Gin 框架上呈现模板。
c.HTML
函数上的GET("/")
函数需要渲染一个模板。
但是POST("/markdown")
我已经在一个字符串上渲染了那个 HTML。
我怎样才能在杜松子酒上退货?
google-app-engine - 如何在 Google App Engine 中使用 Gin-gonic 中间件?
我在 Google App Engine 平台上为我的网站使用 Gin-Gonic。一切正常,但我开始需要使用一些中间件。
当我尝试使用:
返回的中间件MyMiddleware()
似乎没有运行。
所以我的问题是:
- 使用 GAE 时是否可以使用 gin-gonic 中间件?
- 如果是这样,我该如何实现?
谢谢 !
这是我的消息来源:
main.go :
PS:routes.Router()
只需设置一个路由器gin.New()
并添加一些路由。
unit-testing - 在 Golang 中制作模拟 gin.Context
我正在使用 Gin 框架编写一个 REST API。但是我在测试我的控制器和研究 TDD 和 Mock 时遇到了麻烦。我试图将 TDD 和 Mock 应用于我的代码,但我做不到。
我创建了一个非常精简的测试环境并尝试创建一个控制器测试。如何为 Gin.Context 创建 Mock?
这是我的示例代码:
我的测试示例:
security - 如何在 Go 中检测 xss 攻击并中止错误请求
我在 Go 中使用dvwright/xss-mw中间件来检测 xss。此中间件会自动从用户提交的输入中删除 xss,并且请求会以有效响应继续。我想检测 xss,如果有任何 xss 脚本,然后通过错误而不是简单地删除 xss。
我的代码在这里。
请帮帮我。
validation - 结合 GO GIN-GONIC GORM 和 VALIDATOR.V2
我对 Go 很陌生,我想通过设置 GIN-GONIC API 来启动。我找到了这个教程,我对这个骨架很满意。但现在我坚持使用我添加的验证过程:“gopkg.in/validator.v2”和
变成了
然后在CreateTodo
我添加的函数中:
但随后一个 POST 调用发送:
“错误”:“类型:未知标签”
经过一些研究,我发现:
在字段标签中使用不存在的验证函数将始终返回 false 并带有错误
validate.ErrUnknownTag
。
所以**validate:"size:2"**
一定是错的......
我不知道如何设置验证以及如何在“catch”中显示正确的错误: