go htmx 和 sse 示例
此示例演示如何替换事件中的几个块,例如“id 1 的帖子已更改”( post-1-changed ) 并触发通过“chatter”上的 ajax 请求加载内容活动。
package main import ( "fmt" "net/http" "time" "github.com/r3labs/sse/v2" ) func main() { server := sse.New() _ = server.CreateStream("messages") mux := http.NewServeMux() mux.HandleFunc("/events", func(w http.ResponseWriter, r *http.Request) { // la security token := r.URL.Query().Get("token") if token != "secret" { http.Error(w, "invalid token", http.StatusUnauthorized) return } go func() { <-r.Context().Done() println("The client is disconnected here") return }() server.ServeHTTP(w, r) }) mux.HandleFunc("/chatroom", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte(`<div>Hello from chat room</div>`)) }) mux.HandleFunc("/index", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte(` <html> <head> <script src="https://unpkg.com/htmx.org@2.0.2/dist/htmx.js"></script> <script src="https://unpkg.com/htmx-ext-sse@2.2.2/sse.js"></script> </head> <body hx-ext="sse" sse-connect="/events?stream=messages&token=secret"> <div > <div sse-swap="post-1-changed">one</div> </div> <div> <div sse-swap="post-1-changed">one</div> </div> <div> <div sse-swap="post-1-changed">one</div> </div> <div> <div sse-swap="notifications">one</div> </div> <div> <div hx-get="/chatroom" hx-trigger="sse:chatter"> chat body reloaded </div> </div> </body></html> `)) }) go func() { i := 0 for { i++ time.Sleep(1 * time.Second) server.TryPublish("messages", &sse.Event{ ID: []byte(fmt.Sprintf("%d", i)), Event: []byte("post-1-changed"), Data: []byte(`<div>Hello from sse ` + fmt.Sprintf("%d", i) + `</div>`), }) server.TryPublish("messages", &sse.Event{ ID: []byte(fmt.Sprintf("%d", i)), Event: []byte("notifications"), Data: []byte(`<div>Hello from post 2 sse ` + fmt.Sprintf("%d", i) + `</div>`), }) server.TryPublish("messages", &sse.Event{ ID: []byte(fmt.Sprintf("%d", i)), Event: []byte("chatter"), Data: []byte(`<div></div>`), }) server.EventTTL = 5 * time.Second } }() http.ListenAndServe(":9999", mux) }
登录后复制
以上是go htmx 和 sse 示例的详细内容。更多信息请关注PHP中文网其他相关文章!
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章
R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前
By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
4 周前
By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前
By 尊渡假赌尊渡假赌尊渡假赌
击败分裂小说需要多长时间?
3 周前
By DDD
R.E.P.O.保存文件位置:在哪里以及如何保护它?
3 周前
By DDD

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)