我们可以在webSocket连接升级之前调用http.Error()吗?
我用的是大猩猩网袋 我将url中的一些参数传递给我们可以在webSocket连接升级之前调用http.Error()吗?,http,go,websocket,gorilla,Http,Go,Websocket,Gorilla,我用的是大猩猩网袋 我将url中的一些参数传递给HandlerFunc,我需要检查它们是否有效 如果是,我将连接升级到webSocket并使用它 如果没有,我想调用http.Error向用户报告错误 这样做对吗 下面是一个示例代码: var upgrader=websocket.upgrader{}//使用默认选项 func myHandler(w http.ResponseWriter,r*http.Request){ 键,确定:=r.URL.Query()[“键”] 如果!好的{ http.
HandlerFunc
,我需要检查它们是否有效
如果是,我将连接升级到webSocket并使用它
如果没有,我想调用http.Error
向用户报告错误
这样做对吗
下面是一个示例代码:
var upgrader=websocket.upgrader{}//使用默认选项
func myHandler(w http.ResponseWriter,r*http.Request){
键,确定:=r.URL.Query()[“键”]
如果!好的{
http.Error(w,“缺少键参数”,http.StatusNotFound)
返回
}
ws,err:=upgrader.Upgrade(w,r,nil)
如果错误!=零{
log.Print(“升级:”,错误)
返回
}
延迟ws.Close()
...
}
您的问题似乎是,如果运行已有的代码,会发生什么情况。你试过了吗?发生了什么?@Adrian代码太复杂,正在进行中。我不能测试它。我最终应该创建一个小的测试代码,但我发现在这里询问更简单,我希望有一个规范。这并不是因为它可以与一些webSocket X和客户端Y一起工作,而是因为它将成为标准。我不会问我是否可以自己测试它。返回404响应是处理这种情况的正确方法。你遇到了什么问题?@CeriseLimón,谢谢。我只是在写代码。我还没有测试任何东西。