GO 配置Websocket范例

func main() {
    go func() {
        err := http.ListenAndServe(":9998", websocket.Server{websocket.Config{},   
        nil, ChatroomServer})
        if err != nil {
            panic("ListenAndServe: " + err.Error())
        }
    }()
    err := http.ListenAndServe(":9999", nil)
    if err != nil {
        panic("ListenAndServe: " + err.Error())
    }
}

    
func ChatroomServer(ws *websocket.Conn) {
    defer func(){
        ws.Close()
    }()
    var msgReceive string
    var msgToSend string
    for{
        if err := websocket.Message.Receive(ws,&msgReceive);err!=nil{
            fmt.Println("Can't receive")
        }
        if err := websocket.Message.Send(ws,&msgToSend);err!=nil{
            fmt.Println("Can't send")
        }
    }               
}

直接使用http.handler("/", websocket.Handler(ChatroomServer))这种方式会报错.
目前猜测应该是websocket不能和其它的玩意共享一个端口,必须是独立使用一个端口..仅为个人猜测

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容