是否可以检查WebSocket 403响应
Is it possible to check for WebSocket 403 responses?
是否可以通过编程方式检查WebSocket连接是否失败并获得403响应?例如,使用以下服务器代码:
package main
import (
"errors"
"io"
"log"
"net/http"
"golang.org/x/net/websocket"
)
func main() {
handler := websocket.Handler(func(ws *websocket.Conn) {
io.Copy(ws, ws)
})
handshake := func(conf *websocket.Config, req *http.Request) error {
if req.URL.Path == "/sekret" {
return nil
}
return errors.New("Oops!")
}
server := &websocket.Server{
Handshake: handshake,
Handler: handler,
}
log.Fatal(http.ListenAndServe(":8080", server))
}
和下面触发403响应的JS连接示例:
var ws = new WebSocket("ws://localhost:8080/something");
ws.onerror = console.log;
错误响应是类型为"error"
的Event
。另一方面,以下JS代码触发net::ERR_CONNECTION_REFUSED
(至少在Chrome上):
var ws = new WebSocket("ws://localhost:8081/something");
ws.onerror = console.log;
错误事件对象看起来几乎完全相同。是否有办法从客户端区分WebSocket连接中的错误类型?(我特别寻找403响应,所以我可以提醒用户采取特殊行动。)
显然这是故意的:
我的理解是,出于安全原因,WebSocket错误状态是相当有限的,以限制恶意JS探测内部网络的能力。
相关文章:
- 如何将getJson的响应保存在全局变量中
- 如何使用Spring MVC将Facebook返回的响应数据保存在Java类中
- 使用angularjs向浏览器发送servlet响应(下载功能)
- MockJax没有在JavaScript应用程序中发送对我AJAX请求的响应
- chrome在WebSocket握手期间获取新错误
- WebSocket握手:意外的响应代码:404
- Nodejs-websocket:如何在没有服务器响应的情况下连续发送客户端消息
- 如何使用javascript中的间隔以顺序方式处理websocket响应
- 在多个选项卡中测试 websocket 连接会使页面快速响应
- 如何捕获`WebSocket连接到'ws://xxx:nn'失败:连接在收到握手响应之前关闭`error
- WebSocket握手期间出错:意外的响应代码:500
- 是否可以检查WebSocket 403响应
- 捕获WebSocket异常:"在WebSocket握手期间错误:意外响应码:503"
- Websocket错误:Websocket握手过程中出现错误:状态行中没有找到响应代码
- 意外的响应代码:426,带有PhanthomJS Websocket客户端/ROSLIB
- 如何访问Javascript中的Websocket响应标头
- Websocket - WebSocket 握手期间出错:意外响应代码:404
- 与
的 WebSocket 连接失败:WebSocket 握手期间出错:意外响应代码:404 - Python服务器Websocket握手响应
- WebSocket握手:意外响应代码:404 -