go 代码实现的简易聊天室访问不了,麻烦大佬帮忙看看哪里出问题了?

代码如下:

package main

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

type Connect struct {
    wc *websocket.Conn
    sc chan []byte
}
var H = make(map[*Connect]bool, 2)
func (c *Connect) writer() {
    for msg := range c.sc {
        fmt.Printf("%#v\n", c.sc)
        c.wc.Write(msg)
    }
}

func (c *Connect) reader() {
    for range time.NewTicker(time.Second).C {
        buf := make([]byte, 1500)
        n, err := c.wc.Read(buf)
        if err != nil {
            fmt.Println(err)
        }

        fmt.Println(string(buf[:n]))
        if len(string(buf[:n])) < 1 {
            continue
        }
        for conn := range H {
            // fmt.Printf("%#v\n", conn)
            conn.sc <- buf[:n]
        }
    }
}

func msg(wc *websocket.Conn) {
    c := &Connect{
        wc: wc,
        sc: make(chan []byte),
    }
    // H = Hub{r: make(chan *Connect, 100)}
    if c.wc != nil {
        H[c] = true
    }

    go c.writer()
    c.reader()
}

func main() {
    http.Handle("/", http.FileServer(http.Dir("./")))
    http.Handle("/msg", websocket.Handler(msg))
    fmt.Println("start server at 6666")
    http.ListenAndServe(":6666", nil)
}

为何我通过 http://localhost:6666/ 访问不了呢?

页面提示:

无法访问此网站网址为 http://localhost:6666/ 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。

我期望做一个简单的聊天室代码练个手,百度了半天都是不能用的,这个代码看着简洁,但是运行没报错,就是访问不了。

阅读 952
1 个回答

可能端口被限了。你换其他端口试试,我的6666端口和6000端口也不行,但是我换到8000或者9000的端口就好了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题