dongmale0656 2017-03-08 21:41 采纳率: 100%
浏览 4533
已采纳

WebSocket连接失败:连接建立错误:net :: ERR_SSL_PROTOCOL_ERROR

当我试图通过wss://连接到WebSocket时,我为什么会得到这个错误,但是在ws://上却没问题呢?

错误:

WebSocket connection failed: Error in connection establishment: net::ERR_SSL_PROTOCOL_ERROR

代码:

package main

import (
    "fmt"
    "log"
    "net/http"
    //"encoding/json"
    "github.com/gorilla/websocket"
)

var clients map[*websocket.Conn]*Client

var upgrader = websocket.Upgrader{
    CheckOrigin : func(r *http.Request) bool{
        return true
    },
}

type Client struct{
    session_id  string
    block_id    uint
    module      string
}

func main(){
    var port uint = 8000

    http.HandleFunc("/", handleConnections)

    log.Printf("Websocket server started on: %d", port)
    err := http.ListenAndServe(fmt.Sprintf(":%d", port), nil)
    if err != nil {
        log.Fatal("ListenAndServe: ", err)
    }
}

func handleConnections(w http.ResponseWriter, r *http.Request){
    //  Upgrade initial GET request to a websocket
    ws, err := upgrader.Upgrade(w, r, nil)
    if err != nil {
        log.Print(err)

        return
    }

    defer ws.Close()

    log.Print("Connection established to IP: ", r.RemoteAddr)

    ...
}
  • 写回答

1条回答 默认 最新

  • dragon87836215 2017-03-08 21:49
    关注

    Your server is only listening for HTTP connections so you should use ws when making a connection. wss is "WebSocket Secure" which really just means a WebSocket connection that is served over HTTPS (TLS)

    From the RFC 6455

    A |wss| URI identifies a WebSocket server and resource name and
    indicates that traffic over that connection is to be protected via
    TLS (including standard benefits of TLS such as data confidentiality
    and integrity and endpoint authentication).
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵