我的 Go 版本是:
go version go1.12.9 windows/amd64
从此链接:
https://github.com/googollee/go-socket.io/tree/v1.0
我在cmd中运行此代码:
go get github.com/googollee/go-socket.io
但我无法运行此代码:
package main
import (
"log"
"net/http"
"github.com/googollee/go-socket.io"
)
func main() {
server, err := socketio.NewServer(nil)
if err != nil {
log.Fatal(err)
}
server.On("connection", func(so socketio.Socket) {
log.Println("on connection")
so.Join("chat")
so.On("chat message", func(msg string) {
log.Println("emit:", so.Emit("chat message", msg))
server.BroadcastTo("chat", "chat message", msg)
})
so.On("disconnection", func() {
log.Println("on disconnect")
})
})
server.On("error", func(so socketio.Socket, err error) {
log.Println("error:", err)
})
http.Handle("/socket.io/", server)
http.Handle("/", http.FileServer(http.Dir("./asset")))
log.Println("Serving at localhost:5000...")
log.Fatal(http.ListenAndServe(":5000", nil))
}
我无法运行它,为什么?
我认为我的问题在于获取 V1.4 和 v1.0
go get github.com/googollee/go-socket.io
如何从 github 获取 Golang v1.0?
但是这段代码运行良好
package main
import (
"fmt"
"log"
"net/http"
"github.com/googollee/go-socket.io"
)
func main() {
server, err := socketio.NewServer(nil)
if err != nil {
log.Fatal(err)
}
server.OnConnect("/", func(s socketio.Conn) error {
s.SetContext("")
fmt.Println("connected:", s.ID())
return nil
})
http.Handle("/socket.io/", server)
http.Handle("/", http.FileServer(http.Dir("./asset")))
log.Println("Serving at localhost:8000...")
log.Fatal(http.ListenAndServe(":8000", nil))
}
最佳答案
如果您的项目uses go modules (有一个 go.mod 文件,在 go mod init myproject 之后),您可能需要做的是:
go get github.com/googollee/go-socket.io@v1.0.1
我使用 v1.0.1,因为 googollee/go-socket.io
中没有 1.0.0 标签发布
关于go - 如何从github获取go-socket.io并在Go中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57862771/