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"}}
"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > اذهب هتمكس وSSE سبيل المثال

اذهب هتمكس وSSE سبيل المثال

تم النشر بتاريخ 2024-11-07
تصفح:326

go htmx and sse example

يوضح هذا المثال كيفية استبدال بعض الكتل في الحدث، على سبيل المثال "تم تغيير المنشور بالمعرف 1" (تم التغيير بعد 1) وتشغيل تحميل المحتوى عبر طلب 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