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)} ","image":"http://www.luping.net/uploads/20240903/172533420366d682bb82a48.jpg","datePublished":"2024-11-07T21:21:13+08:00","dateModified":"2024-11-07T21:21:13+08:00","author":{"@type":"Person","name":"luping.net","url":"https://www.luping.net/articlelist/0_1.html"}}
"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > allez htmx et sse exemple

allez htmx et sse exemple

Publié le 2024-11-07
Parcourir:884

go htmx and sse example

Cet exemple montre comment remplacer quelques blocs sur un événement, par exemple "post avec l'identifiant 1 modifié" ( post-1-changed ) et déclencher le chargement du contenu via une requête ajax sur "chatter" événement.

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() {
            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) }
Déclaration de sortie Cet article est reproduit sur : https://dev.to/blinkinglight/go-htmx-and-sse-example-55k6?1 En cas de violation, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3