Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们可以在webSocket连接升级之前调用http.Error()吗?_Http_Go_Websocket_Gorilla - Fatal编程技术网

我们可以在webSocket连接升级之前调用http.Error()吗?

我们可以在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.

我用的是大猩猩网袋

我将url中的一些参数传递给
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,谢谢。我只是在写代码。我还没有测试任何东西。