如何在 Go 中将 websocket 与 NewServeMux 一起使用?

Posted

技术标签:

【中文标题】如何在 Go 中将 websocket 与 NewServeMux 一起使用?【英文标题】:How to use websocket with NewServeMux in Go? 【发布时间】:2017-10-02 06:56:25 【问题描述】:

我收到一条错误消息:不能在 mx.HandleFunc 的参数中使用 websocket.Handler(handler) (type websocket.Handler) 作为类型 func(http.ResponseWriter, *http.Request)

在下面的代码中

package main

import (
    "golang.org/x/net/websocket"
    "net/http"
)

func handler(ws *websocket.Conn) 
    // TODO

func main() 
    mx := http.NewServeMux()
    mx.HandleFunc("/ws", websocket.Handler(handler)) // error

    http.ListenAndServe("localhost:8888", mx)

【问题讨论】:

【参考方案1】:

我相信你应该使用mx.Handle,而不是mx.HandleFunc

【讨论】:

以上是关于如何在 Go 中将 websocket 与 NewServeMux 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

发送连接升级后,如何在golang中将客户端http连接升级到websockets

在 Django 中将参数传递给 websocket

4 TCP与UDP与WebSocket

4 TCP与UDP与WebSocket

4 TCP与UDP与WebSocket

4 TCP与UDP与WebSocket