
Dieses Beispiel zeigt, wie man einige Blöcke bei einem Ereignis ersetzt, zum Beispiel „Beitrag mit ID 1 geändert“ ( post-1-changed ) und den Auslöser zum Laden von Inhalten über eine Ajax-Anfrage bei „chatter“ auslöst. Veranstaltung.
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(`Hello from chat room`)) }) mux.HandleFunc("/index", func(w http.ResponseWriter, r *http.Request) { w.Write([]byte(`
one one one one chat body reloaded `)) }) 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(`Hello from sse ` + fmt.Sprintf("%d", i) + ``), }) server.TryPublish("messages", &sse.Event{ ID: []byte(fmt.Sprintf("%d", i)), Event: []byte("notifications"), Data: []byte(`Hello from post 2 sse ` + fmt.Sprintf("%d", i) + ``), }) server.TryPublish("messages", &sse.Event{ ID: []byte(fmt.Sprintf("%d", i)), Event: []byte("chatter"), Data: []byte(``), }) server.EventTTL = 5 * time.Second } }() http.ListenAndServe(":9999", mux) }
Das obige ist der detaillierte Inhalt vonGehen Sie zum Beispiel Htmx und SSE. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
So lösen Sie 404 nicht gefunden
Was sind die internationalen Postfächer?
So eröffnen Sie zwei WeChat-Konten auf einem Huawei-Mobiltelefon
WeChat-Momente, zwei Striche und ein Punkt
Funktionen des Tracert-Befehls
Auf welcher Börse ist Sols Inscription Coin?
ORACLEDISTINCT
Methode zur Steuerung eines Schrittmotors