问题标签 [gorilla]
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 - 使用 gorilla mux 子路由器时如何获取完整的请求路径?
我正在使用 gorilla 工具包 mux 来路由请求,我有几个使用路径前缀的子路由,问题是我想获取完整的请求路径,但 req.URL.path 只有路径前缀之后的部分 url 所以如何我得到一个包含路径前缀的路径吗?提前致谢
go - 如何将 {name:value} 对与 Gorilla Mux HandleFunc 一起使用?
我使用带有函数处理程序的多路复用路由器
测试处理程序定义如下:
我用这个页面调用
但我得到一个 404。还有第三个:值不起作用。什么是正确的网址?我可以像这样检索名称/值对的变量吗?
ios - 为什么我的 websocket 服务器总是报 [websocket: control frame length > 125]?
我的 iOS 应用程序用于SocketRocket与我的 websocket 服务器建立连接。但是在建立连接并发送第一条消息后,服务器(使用gorilla/websocket)尝试解析帧,但失败了:
调用NextReader()时报错:
奇怪的是,我使用SocketRocket'ssend()方法发送数据,所以不应该有任何控制帧(ping/pong)。
有没有人见过这个问题?帮助!
go - 我需要使用 go lang 连接到现有的 websocket 服务器
在我的本地主机上运行了一个 websocketws://localhost:8080/ws
我需要可以创建 websocket 客户端并连接到该服务器的 go lang 代码。
我的 Google-Fu 技能未能教给我一个简单的方法来做到这一点。
谢谢你。
regex - 我的(有效?)正则表达式在 gorilla/mux 中不起作用
我的代码中有这个正则表达式:
但是当我运行测试时,只返回 404。我也试过这个:
它与我的旧(但不正确)正则表达式完美配合:
我想知道我的新正则表达式有什么问题。我尝试在一些网站上测试它,也尝试使用regexpGo 中的包,它总是有效。据我所知,gorilla/mux使用 Go 的regexp包。任何想法?
我想要的是检测不包括零的正整数。
json - 如何列出 Gorilla Mux 中的所有变量?
当你在 Golang 中创建一个 funcHandler 并使用 Gorilla Mux 时,我知道你可以通过调用 Mux.Vars 来访问特定的输入变量。但是,我不确定当您以 JSON 格式存储数据时它是如何工作的,部分原因是我不确定 Mux.Vars() 是如何工作的。所以,我想知道当您输入 funcHandler 时如何列出 Mux.Vars() 存储的所有变量以及如何解析存储在 URL 中的 JSON(即 /data?name="bill"&value="red" ,我想在其中找到名称和值键的值)。
json - Go 语言中的请求正文为空(邮递员)
我正在使用 Postman 在 localhost 上发布 json 字符串。我在 Postman 中传递的 json 字符串是:
然而,当我在我的测试函数中检索数据时,req.Body我得到了这样的结果:&{%!s(*io.LimitedReader=&{0xc0820142a0 0}) <nil> %!s(*bufio.Reader=<nil>) %!s(bool=false) %!s(bool=true) {%!s(int32=0) %!s(uint32=0)} %!s(bool=true) %!s(bool=false) %!s(bool=false)}
我希望在请求正文中获得 name:foo 。
我的 go lang 代码是:
谁能告诉我为什么我在 req.Body 属性中得到空白数据?非常感谢。
go - 更新:使用 js websockets 发送源头
我一直在玩 Go 中的 gorilla-websocket,当我实现基本的 echo 示例时,我在部署服务器后记录了一个错误,
找不到源 Websocket 版本!= 13
我找到了一种绕过此问题的方法,方法是使检查原点的函数始终返回 true
但是感觉不太对。因此,我正在寻找解决该问题的方法。
更新:在再次查看问题之后,我似乎实际上正在寻找将原始标头添加到客户端实现,即 javascript websocket 实现
@benjic 我通过 javascript html5 应用程序连接到 websocket,该应用程序未托管在同一台服务器上,但由我通过 chrome 在本地运行
那我该怎么做。
go - 如何在 Go 方法中调用/打开 URL?
我在 Go 中设置了一个 Gorilla Mux 路由器。我在该路由器中设置了路由,以及与这些路由关联的函数处理程序。如果您打开浏览器窗口并输入特定的 URL ,则路由器可以正常工作。但是,我遇到的问题是如果在命令行中输入 URL 该怎么办。我知道如何从命令行参数存储 URL,但我不知道如何将存储为 Go 中的 URL 变量的 URL 转发到路由器。比如,如果 URL 是在命令行中给出的而不是通过浏览器窗口输入的,你如何调用路由的函数处理程序?
代码:
go - (Go) 比较 ws 循环中不断变化的变量
处理一个接收消息并相应地处理它们的循环,基本上是一个具有保持活动和身份验证的 websocket echo-er,我已经在保持活动部分停留了一段时间。
这个概念很简单,当服务器启动时,我用一个ticker创建一个goroutine,并初始化一个uint64指针,每次ticker滴答(每2秒),我用atomic.AddUint64(clockTicks,1)递增指针,然后对于每个 websocket 连接 goroutine,我使用比较和 atomic.LoadUint64(clockTicks) 来检查变量,然后发送 ping/pong 消息。
编辑:似乎有什么东西阻塞了 for 循环,直到收到一条消息,结果:
在此代码段中, i := atomic.LoadUint64(clockTicks) & 所有 if 块仅在发送 i 消息时运行(在 msg 上打印“继续前进。”),这不是我想要的,我希望代码段运行每个进行迭代,并“继续前进”。& "Quit nao ..." 以触发每次时钟刻度增加
这是重要的代码部分,我正在使用 Go 和 Gorilla 的 Websockets 库:
编辑 2:IRC 中的某个人建议可能 ws.ReadMessage 正在阻塞,但我不太确定(他说 ws.ReadMessage 实现中使用的 ioutil.ReadAll 正在阻塞它,他对此非常确定)