前端访问go后端(在 Go 中使用 Websockets 和 Socket.IO - 教程)

前端访问go后端(在 Go 中使用 Websockets 和 Socket.IO - 教程)

大家好,关于前端访问go后端(在 Go 中使用 Websockets 和 Socket.IO 很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于前端访问go后端(在 Go 中使用 Websockets 和 Socket.IO 的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!



现实生活中的例子

透视事物并展示 websockets 的重要性。想象一下,我们有一个聊天应用程序,它从单个服务器获取所有最新消息,并将所有新消息推送到同一台服务器。

如果我们考虑使用 websockets 而不是 REST API 调用的场景:

实现一个 Golang 服务器

安装 go-socket.io

我们可以使用如下go get命令安装软件包:

go get github.com/googollee/go-socket.io

然后我们可以将它包含在我们的 go 程序中,如下所示:

import "github.com/googollee/go-socket.io"简单服务器

前端访问go后端(在 Go 中使用 Websockets 和 Socket.IO - 教程)

让我们看一下readme.md我们正在使用的库中提供的示例代码。

main.go

package mainimport ( "log" "net/http" socketio "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)) so.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) fs := http.FileServer(http.Dir("static")) http.Handle("/", fs) log.Println("Serving at localhost:5000...") log.Fatal(http.ListenAndServe(":5000", nil))}运行它

所以在上面的代码示例中,我们在我们的main()函数中做所有事情。我们首先socketio通过调用定义一个新的服务器实例, socketio.NewServer(nil)然后再定义我们希望我们的套接字服务器在连接时和出现错误时具有的行为。

在server.On('connection',...)我们第一次登录,有已经连接成功做出之前就加入了chat使用房间 so.Join("chat")。

好的,我们已经设法充实了我们的后端基于 Go 的 WebSocket 服务器,但是现在是时候启动并运行一个简单的前端应用程序,以便我们可以测试我们所做的工作。

我们将首先index.html在我们的项目目录中创建一个简单的。

索引.html

当你然后通过调用运行你的 websocket 服务器时:

$ 去运行 main.go

2018/06/10 07:54:06 Serving at localhost:5000...2018/06/10 07:54:15 on connection2018/06/10 07:54:16 on connection

这应该然后开始运行您应该能够在浏览器中导航到此 URL,并在服务器的日志输出中看到正在建立的新连接。

您现在已经成功构建了一个直接连接到新创建的后端 websocket 服务器的前端!

如果您发现本教程有用或需要任何进一步的帮助,请随时在下面的评论部分告诉我。

好了,文章到此结束,希望可以帮助到大家。

文章版权声明:除非注明,否则均为边学边练网络文章,版权归原作者所有

相关阅读