golang socketio
时间: 2024-01-31 18:03:36 浏览: 137
golang中的socke.io库可以用于实现实时应用程序。下面是一个简单的示例,演示如何在golang中使用socket.io:
首先,需要安装socket.io库。可以使用以下命令进行安装:
```shell
go get github.com/googollee/go-socket.io
```
接下来,可以使用以下代码创建一个socket.io服务器:
```go
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))
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)
http.Handle("/", http.FileServer(http.Dir("./asset")))
log.Println("Serving at localhost:5000...")
log.Fatal(http.ListenAndServe(":5000", nil))
}
```
在上面的代码中,我们创建了一个socket.io服务器,并在“connection”事件上订阅了一个回调函数。在这个回调函数中,我们加入了一个名为“chat”的房间,并在“chat message”事件上订阅了另一个回调函数。在这个回调函数中,我们使用“BroadcastTo”方法将消息广播到“chat”房间中的所有客户端。
接下来,可以使用以下代码创建一个socket.io客户端:
```go
package main
import (
"log"
"github.com/googollee/go-socket.io"
)
func main() {
socket, err := socketio.Dial("ws://localhost:5000/socket.io/")
if err != nil {
log.Fatal(err)
}
socket.On("chat message", func(msg string) {
log.Println("received message:", msg)
})
socket.Emit("chat message", "hello world")
}
```
在上面的代码中,我们创建了一个socket.io客户端,并在“chat message”事件上订阅了一个回调函数。在这个回调函数中,我们打印了收到的消息。然后,我们使用“Emit”方法向服务器发送了一条消息。
阅读全文