Javascript 是否可以检查WebSocket 403响应?

Javascript 是否可以检查WebSocket 403响应?,javascript,websocket,Javascript,Websocket,是否可以通过编程方式检查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,

是否可以通过编程方式检查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”
。另一方面,下面的JS代码会触发一个
net::ERR_CONNECTION_densed
(至少在Chrome上):

错误事件对象看起来几乎完全相同。是否有某种方法可以将WebSocket连接中的错误类型与客户端区分开来?(我特别寻找403个响应,因此我可以提醒用户采取特殊措施。)

显然:

我的理解是,出于安全原因,WebSocket错误状态受到相当大的限制,以限制恶意JS探测内部网络的能力

var ws = new WebSocket("ws://localhost:8081/something"); 
ws.onerror = console.log;