דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
ע"ה דכו"עע

ע"ה דכו"ע

@ע"ה דכו"ע
אודות
פוסטים
5
נושאים
1
שיתופים
0
קבוצות
0
עוקבים
0
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • מה יכול להיות סיבה לשגיאה 1200 חוזרת ונשנית באתר שמוגש דרך קלאודפלייר?
    ע"ה דכו"עע ע"ה דכו"ע

    בקוד המקורי זה כאן

    אני שיניתי קצת את הקוד הזה, אז אני מצרף את הקובץ המלא

    package main
    
    import (
    	"context"
    	"encoding/json"
    	"net/http"
    	"sync"
    	"sync/atomic"
    	"time"
    )
    
    var openSSEConnections = atomic.Int64{}
    var peakSSEConnections = &PeakSSEConnections{}
    var peakMu = sync.Mutex{}
    
    type PeakSSEConnections struct {
    	Value     int64     `json:"value" redis:"value"`
    	Timestamp time.Time `json:"timestamp" redis:"timestamp"`
    }
    type Statistics struct {
    	Data   []int64  `json:"date"`
    	Labels []string `json:"labels"`
    }
    
    func init() {
    	ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
    	defer cancel()
    
    	p, _ := dbGetPeakSSEConnections(ctx)
    	peakMu.Lock()
    	defer peakMu.Unlock()
    	peakSSEConnections = p
    }
    
    func statLogger() {
    	var old int64
    	for {
    		new := openSSEConnections.Load()
    		if old != new {
    			dbSaveSSEStatistics(new)
    			old = new
    		}
    		time.Sleep(5 * time.Minute)
    	}
    }
    
    func increaseCounterSSE() {
    	new := openSSEConnections.Add(1)
    
    	peakMu.Lock()
    	defer peakMu.Unlock()
    	if new > peakSSEConnections.Value {
    		peakSSEConnections.Value = new
    		peakSSEConnections.Timestamp = time.Now()
    		peak := *peakSSEConnections
    		go dbSavePeakSSEConnections(&peak)
    	}
    }
    
    func decreaseCounterSSE() {
    	openSSEConnections.Add(-1)
    }
    
    func getStatistics(w http.ResponseWriter, r *http.Request) {
    	ctx, cancel := context.WithTimeout(r.Context(), 5*time.Second)
    	defer cancel()
    
    	amount, err := dbGetUsersAmount(ctx)
    	if err != nil {
    		http.Error(w, "error", http.StatusInternalServerError)
    		return
    	}
    
    	s, err := dbGetSSEStatistics(ctx, 1000)
    	if err != nil {
    		http.Error(w, "error", http.StatusInternalServerError)
    		return
    	}
    
    	peakMu.Lock()
    	defer peakMu.Unlock()
    
    	response := struct {
    		UsersAmount           int64               `json:"usersAmount"`
    		ConnectedUsersAmount  int64               `json:"connectedUsersAmount"`
    		PeakSSEConnections    *PeakSSEConnections `json:"peakSSEConnections"`
    		ConnectionsStatistics Statistics          `json:"connectionsStatistics"`
    	}{
    		UsersAmount:           amount,
    		ConnectedUsersAmount:  openSSEConnections.Load(),
    		PeakSSEConnections:    peakSSEConnections,
    		ConnectionsStatistics: *s,
    	}
    
    	w.Header().Set("Content-Type", "application/json")
    	json.NewEncoder(w).Encode(response)
    }
    
    func resetStatistics(w http.ResponseWriter, r *http.Request) {
    	peakMu.Lock()
    	defer peakMu.Unlock()
    	peakSSEConnections.Value = 0
    	peakSSEConnections.Timestamp = time.Time{}
    	p := *peakSSEConnections
    	go dbSavePeakSSEConnections(&p)
    
    	var response Response
    	response.Success = true
    	json.NewEncoder(w).Encode(response)
    }
    
    
    
    רשתות

  • מה יכול להיות סיבה לשגיאה 1200 חוזרת ונשנית באתר שמוגש דרך קלאודפלייר?
    ע"ה דכו"עע ע"ה דכו"ע

    @קינג-קומפיוטר כתב במה יכול להיות סיבה לשגיאה 1200 חוזרת ונשנית באתר שמוגש דרך קלאודפלייר?:

    אולי יש קשר בין הדברים?
    https://tchumim.com/post/170422

    החיבור שלי לSSE כן פתוח בנטפרי, רק שאחרי כמה דקות מקבלים שגיאה 1200

    רשתות

  • מה יכול להיות סיבה לשגיאה 1200 חוזרת ונשנית באתר שמוגש דרך קלאודפלייר?
    ע"ה דכו"עע ע"ה דכו"ע

    האתר הוא בעצם הפרוייקט של נטפרי - הערוץ https://github.com/NetFree-Community/TheChannel הSSE שם נועד כדי לשלוח מידע בזמן אמת למשתמש על הודעות חדשות ועל אימוג'ים שנוספו ע"י המשתמשים.

    בעיקרון מאותו דומיין מוגשים גם הקבצים הסטטיים של הצד לקוח, גם התוכן של הערוץ שמוגש כjson בנתיב API, גם המדיה, וגם החיבור SSE (מה שניסיתי להפריד זה את הSSE לדומיין אחד וכל שאר התכנים נשארו בדומיין הראשי).

    א. כניסה הכוונה כשנכנסים לאתר, או כשמרעננים את הדף של האתר.
    ב. כמו שכתבתי ישנם גם קבצים שמוגשים באתר.

    רשתות

  • מה יכול להיות סיבה לשגיאה 1200 חוזרת ונשנית באתר שמוגש דרך קלאודפלייר?
    ע"ה דכו"עע ע"ה דכו"ע

    אני העברתי בימים האחרונים אתר שמשתמש בSSE (לשליחת מתמשכת של מידע מהשרת) דרך פרוקסי של קלאודפלייר, ונהיה אחרי כמה שעות המון פעמים שגיאה 1200 בכניסה, שזה אומר על פי התיעוד שיש מידי הרבה בקשות שמחכות בתור מהפרוקסי לשרת המקורי.

    השאלה למה זה קורה, השרת לא איטי בכלל לבקשות הרגילות של הקבצים שמגיעות אליו, בטח לא אחרי שכמעט כל הקבצים כבר מוגשים מהמטמון של קלאודפלייר.

    המחשבה הראשונה היא שאולי זה קשור לחיבור של הSSE שבעצם נשאר מחובר באופן קבוע, ואולי נספר לחיבורים עד שמתמלאת המכסה, אבל בWebSockets הרי יש תמיכה עד כמה שידוע לי, וגם SSE אמור לכאו' להיכלל בתמיכה הזו.

    כמו כן לא מצאתי שום אזכור ברשת על צורך בהחרגת SSE מהreverse proxy של קלאודפלייר.

    כמה AI ששאלתי לא כל כך הצליחו להסביר לי למה זה קורה, ומיד אחרי שהעלתי את ההשערה לגבי הSSE הם קפצו על זה מיד והחליטו שצריך לפצל את הSSE לתת דומיין נפרד, אבל כמובן אינני יכול לסמוך עליהם בענין.

    אם מישהו יודע האם באמת יש צורך לפצל את הSSE לדומיין נפרד עם ענן אפור, או שיודע מה יכול להיות הסבר אחר לשגיאה, אשמח אם יוכל לעזור לי.

    @צדיק-תמים הציע לי במתמחים טופ להשתמש בcloudflare tunnel, ניסיתי גם את זה, ולא עזר.

    החיבור מוגדר לhttp2 או 3 מקלאודפלייר לשרת.

    בעיקרון גם ניסיתי כבר את לפצל את הדומיין של הSSE לנפרד, ועדיין היה שגיאה, אבל אני לא בטוח במאה אחוז שזה למרות זאת, כי ייתכן שזה ממשתמשים שנשארו עדיין מחוברים לדומיין הישן שלא חסמתי אותו.

    רשתות

  • האיקס של הסגירה בVSC עובר לצד שמאל כשמחליפים לשפה כמו עברית שתומכת מימין לשמאל
    ע"ה דכו"עע ע"ה דכו"ע

    העלתי תרגום מושלם עי AI ותיקון לבאג של הכותרת כאן
    בהצלחה

    תכנות
  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום