代码拉取完成,页面将自动刷新
package main
import (
"fmt"
socket "gitee.com/zhonglin-liu/dao_socket/websocket"
"github.com/go-redis/redis"
"net/http"
"strconv"
"time"
)
func main() {
client := redis.NewClient(&redis.Options{
Addr: "127.0.0.1:6379",
})
hub := socket.NewHub(
socket.WithLogin(func(w http.ResponseWriter, r *http.Request) (uid int64, err error) {
token := r.Header.Get("token")
fmt.Println(token)
uid, err = strconv.ParseInt(token, 10, 64)
return
}),
socket.WithReceive(func(uid int64, msg []byte) {
// your logic
fmt.Println("WithDispatch", string(msg), uid)
uid = 456
socket.GetHub().Send2User(uid, time.Now().Unix(), msg)
}),
// 发送失败的消息持久化,若不传此参数,消息不会持久化
socket.WithRedis(1000, 3600, client),
)
go hub.Run()
http.HandleFunc("/ws", func(w http.ResponseWriter, r *http.Request) {
socket.ServeWs(hub, w, r)
})
fmt.Println("start :8080")
http.ListenAndServe(":8080", nil)
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。