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 trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > vaya a htmx y sse ejemplo

vaya a htmx y sse ejemplo

Publicado el 2024-11-07
Navegar:811

go htmx and sse example

Este ejemplo demuestra cómo reemplazar algunos bloques en un evento, por ejemplo "publicación con id 1 cambiado" (post-1-changed) y activar la carga de contenido mediante una solicitud ajax en "chatter" evento.

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) }
Declaración de liberación Este artículo se reproduce en: https://dev.to/blinkinglight/go-htmx-and-sse-example-55k6?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3