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"}}
«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > пример перехода к HTML и SSE

пример перехода к HTML и SSE

Опубликовано 7 ноября 2024 г.
Просматривать:811

go htmx and sse example

В этом примере показано, как заменить несколько блоков в событии, например «публикация с идентификатором 1 изменена» ( post-1-changed ), и запустить загрузку контента через 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() {
            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) }
Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/blinkinglight/go-htmx-and-sse-example-55k6?1. В случае нарушения авторских прав свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3