דילוג לתוכן
  • חוקי הפורום
  • פופולרי
  • לא נפתר
  • משתמשים
  • חיפוש גוגל בפורום
  • צור קשר
עיצובים
  • בהיר
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • כהה
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • ברירת מחדל (ללא עיצוב (ברירת מחדל))
  • ללא עיצוב (ברירת מחדל)
כיווץ
מתמחים טופ
  1. דף הבית
  2. מחשבים וטכנולוגיה
  3. עזרה הדדית - מחשבים וטכנולוגיה
  4. המלצה | חדש חדש!! צ'אט ישיר בין מחשבים כולל שיחות וידאו ואודיו והעברת קבצים ישירה פתוח לכולם!!!!

המלצה | חדש חדש!! צ'אט ישיר בין מחשבים כולל שיחות וידאו ואודיו והעברת קבצים ישירה פתוח לכולם!!!!

מתוזמן נעוץ נעול הועבר עזרה הדדית - מחשבים וטכנולוגיה
165 פוסטים 34 כותבים 2.3k צפיות 35 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • A ARISH

    הנה הגירסה המעודכנת שאמורה לעבוד גם בחדרי מחשבים ואמורה לעבוד מייד ומהר ובע"ה בלי תקלות, יש גם שינוי עיצוב משמעותי ועוד.
    בע"ה בקרוב ממש תצא גירסה מורחבת כוללת אימוג'ים ועריכת הודעות שנשלחו ואפשרות לשמירת היסטוריה ואפשרות לשיחות מרובות משתמשים ועוד בע"ה.
    מעודכן.wim (עקב תקלה בהעלאה לפורום נאלצתי להעלות את זה בפורמט המוזר הזה אשר נפתח בתוכנת ZIP 7).
    מעודכן.TXT
    למי שמעוניין העליתי גם בפורמט טקסט ויש לשנות את הסיומת של הקובץ לHTML ואז הוא יעבוד רגיל בע"ה.
    אשמח לשמוע התרשמות מהציבור.
    שימו לב שבהורדת קבצים שנשלחו באמצעות הדף בתור ברירת מחדל הם יורדים לתיקיית מסמכים ולא מופיעים בחלונית ההורדות בדפדפן.

    מטען ניידמ מנותק
    מטען ניידמ מנותק
    מטען נייד
    כתב נערך לאחרונה על ידי
    #111

    @ARISH לא עובד

    תגובה 1 תגובה אחרונה
    0
    • A ARISH

      @הישבשר-המלומד

      @הישבשר-המלומד כתב:

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

      לא נראה לי שזה הבעיה אלא יותר עומס זמני ובכל מקרה לא זה הפיתרון כי זה עדיין יגיע מהIP האישי כי גיטאהב רק שומר את הנתונים היבשים אך מרגע שטענת את הדף הוא רץ באופן מלא על המחשב האישי ומשתמש בכתובת הIP האישית בלבד.

      י מנותק
      י מנותק
      יאיר 3210
      כתב נערך לאחרונה על ידי
      #112

      @ARISH עובד לי רק ההודעות אבל לא השיחות

      תגובה 1 תגובה אחרונה
      0
      • A ARISH

        לא מזמן התוודעתי לידיעה שניתן לבצע תקשורת ישירה בין דפדפנים ללא כל צורך בשרת מתווך כלשהו, על בסיס זה הכנתי דף HTML שמבוסס על פורטוקול תקשורת ישיר בין המחשבים ללא כל שרת ביניים.
        האפשרויות שהדף נותן הם:
        1.שיחות צ'אט.
        2. שיחות וידאו ללא הגבלה.
        3. שיחות אודיו ללא הגבלה.
        4. העברת קבצים ישירה ללא הגבלה.

        המעלות של דף זה על פני שימוש בגוגל צ'אט לדוגמה הם:

        1. אתה נשאר אנונימי לחלוטין וכל מה שאתה משתף עם השני זה רק מספר זיהוי כלשהו שאתה יכול להחליף בכל רגע נתון.
        2. אין הגבלה באורך של שיחות הוידאו.
        3. אין הגבלה לגודל של העברת הקבצים והם לא תופסים מקום בדרייב או בכל מקום אחר.
        4. מהירות העברת קבצים מקסימלית כי אינם תלויים במהירות שרת כלשהי.
        5. אין מגבלות אבטחה על העברת קבצים כי אינם עוברים דרך שרת כלשהו.
        6. עיצוב מתקדם.
        7. שמירת מספר הזיהוי בקבצי הקוקיס של הדפדפן לצורך מספר קבוע לשימוש חוזר.

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

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

        צ'אט מקומי חדש.zip

        צ'אט מקומי ללא כל שרת.zip
        עדכון ד' תמוז תשפו':
        להלן גירסה חדשה יעילה יותר ואמורה לעבוד גם בחדרי מחשבים:
        מעודכן.wim (עקב תקלה בהעלאה לפורום נאלצתי להעלות את זה בפורמט המוזר הזה אשר נפתח בתוכנת ZIP 7).
        למי שמעוניין העליתי גם בפורמט טקסט ויש לשנות את הסיומת של הקובץ לHTML ואז הוא יעבוד רגיל בע"ה.מעודכן.TXT
        אשמח לשמוע התרשמות מהציבור.
        שימו לב שבהורדת קבצים שנשלחו באמצעות הדף בתור ברירת מחדל הם יורדים לתיקיית מסמכים ולא מופיעים בחלונית ההורדות בדפדפן.
        אשמח לשמוע תגובות והערות והצעות לשיפור כאן בפורום או בצ'אט החדש 😉 או במייל ARISH121548@GMAIL.COM

        cfopuserC מנותק
        cfopuserC מנותק
        cfopuser
        כתב נערך לאחרונה על ידי
        #113

        @ARISH רעיון יפה,
        אבל נשמע לי משהו מוזר שזה עובד.

        אז אני ישאל שנייה שאלת הבהרה,
        אני יכול להבין אם זה עובד דרך נטפרי (סוף כול סוף כולם מאחורי אותו nat),
        אבל השאלה האם זה עובד בין מחשב ברשת נטפרי לבין מחשב ברשת ללא סינון?

        ע"ה דכו"עע תגובה 1 תגובה אחרונה
        0
        • cfopuserC cfopuser

          @ARISH רעיון יפה,
          אבל נשמע לי משהו מוזר שזה עובד.

          אז אני ישאל שנייה שאלת הבהרה,
          אני יכול להבין אם זה עובד דרך נטפרי (סוף כול סוף כולם מאחורי אותו nat),
          אבל השאלה האם זה עובד בין מחשב ברשת נטפרי לבין מחשב ברשת ללא סינון?

          ע"ה דכו"עע מנותק
          ע"ה דכו"עע מנותק
          ע"ה דכו"ע
          כתב נערך לאחרונה על ידי
          #114

          @cfopuser כתב:

          @ARISH רעיון יפה,
          אבל נשמע לי משהו מוזר שזה עובד.

          מוזר שזה עובד? או מוזר שזה לא חסום בנטפרי?

          cfopuserC תגובה 1 תגובה אחרונה
          0
          • ע"ה דכו"עע ע"ה דכו"ע

            @cfopuser כתב:

            @ARISH רעיון יפה,
            אבל נשמע לי משהו מוזר שזה עובד.

            מוזר שזה עובד? או מוזר שזה לא חסום בנטפרי?

            cfopuserC מנותק
            cfopuserC מנותק
            cfopuser
            כתב נערך לאחרונה על ידי cfopuser
            #115

            @ע-ה-דכו-ע מוזר שזה לא חסום כלפי משתמש חיצוני סוף כול סוף זה חיבור p2p.
            וקשה לי להאמין שנטפרי פתחו אפילו פרוטוקול כזה באופן חופשי.

            ע"ה דכו"עע תגובה 1 תגובה אחרונה
            0
            • cfopuserC cfopuser

              @ע-ה-דכו-ע מוזר שזה לא חסום כלפי משתמש חיצוני סוף כול סוף זה חיבור p2p.
              וקשה לי להאמין שנטפרי פתחו אפילו פרוטוקול כזה באופן חופשי.

              ע"ה דכו"עע מנותק
              ע"ה דכו"עע מנותק
              ע"ה דכו"ע
              כתב נערך לאחרונה על ידי
              #116

              @cfopuser כתב:

              @ע-ה-דכו-ע מוזר שזה לא חסום כלפי משתמש חיצוני סוף כול סוף זה חיבור p2p.
              וקשה לי להאמין שנטפרי פתחו אפילו פרוטוקול כזה באופן חופשי.

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

              ניסיתי בעבר להפעיל שליטה מרחוק דרך p2p ע"י Tailscale וזה לכאו' היה חסום (זה עבד רק דרך המתווך), אבל כאן זה פועל

              cfopuserC תגובה 1 תגובה אחרונה
              0
              • ע"ה דכו"עע ע"ה דכו"ע

                @cfopuser כתב:

                @ע-ה-דכו-ע מוזר שזה לא חסום כלפי משתמש חיצוני סוף כול סוף זה חיבור p2p.
                וקשה לי להאמין שנטפרי פתחו אפילו פרוטוקול כזה באופן חופשי.

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

                ניסיתי בעבר להפעיל שליטה מרחוק דרך p2p ע"י Tailscale וזה לכאו' היה חסום (זה עבד רק דרך המתווך), אבל כאן זה פועל

                cfopuserC מנותק
                cfopuserC מנותק
                cfopuser
                כתב נערך לאחרונה על ידי cfopuser
                #117

                @ע-ה-דכו-ע כתב:

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

                טוב...


                אני מניח שזה לא שונה משליטה מרחוק אבל עדיין זה p2p בלי בקשת אישור מהם.

                תגובה 1 תגובה אחרונה
                0
                • ש מנותק
                  ש מנותק
                  שמואל הסיני
                  כתב נערך לאחרונה על ידי
                  #118

                  @arish אני בנט פרי וזה ממש לא עובד!

                  316bcaa6-dd62-41a4-940a-55ade4dc3142-image.jpeg

                  ר תגובה 1 תגובה אחרונה
                  0
                  • ש שמואל הסיני

                    @arish אני בנט פרי וזה ממש לא עובד!

                    316bcaa6-dd62-41a4-940a-55ade4dc3142-image.jpeg

                    ר מנותק
                    ר מנותק
                    רוטב שום
                    כתב נערך לאחרונה על ידי רוטב שום
                    #119

                    @שמואל-הסיני איך זה יעבוד זה צריך להיות פתוח גם אצל הצד השני

                    שאגב זה אני אז תנסה עכשיו

                    ש תגובה 1 תגובה אחרונה
                    0
                    • ר רוטב שום

                      @שמואל-הסיני איך זה יעבוד זה צריך להיות פתוח גם אצל הצד השני

                      שאגב זה אני אז תנסה עכשיו

                      ש מנותק
                      ש מנותק
                      שמואל הסיני
                      כתב נערך לאחרונה על ידי שמואל הסיני
                      #120

                      @רוטב-שום לקחתי סתם מספר למעלה...
                      תוכל רגע לפתוח?
                      ניסתי אליך שוב
                      7f339e7e-e7e2-4176-a530-d33151d350bd-image.jpeg

                      ר תגובה 1 תגובה אחרונה
                      0
                      • ש שמואל הסיני

                        @רוטב-שום לקחתי סתם מספר למעלה...
                        תוכל רגע לפתוח?
                        ניסתי אליך שוב
                        7f339e7e-e7e2-4176-a530-d33151d350bd-image.jpeg

                        ר מנותק
                        ר מנותק
                        רוטב שום
                        כתב נערך לאחרונה על ידי
                        #121

                        @שמואל-הסיני כתב:

                        תוכל רגע לפתוח?

                        פתוח אצלי!!

                        ש תגובה 1 תגובה אחרונה
                        0
                        • ר רוטב שום

                          @שמואל-הסיני כתב:

                          תוכל רגע לפתוח?

                          פתוח אצלי!!

                          ש מנותק
                          ש מנותק
                          שמואל הסיני
                          כתב נערך לאחרונה על ידי
                          #122

                          @רוטב-שום 79776314-799d-475a-9e12-7c5dbb03a371-image.jpeg

                          ר תגובה 1 תגובה אחרונה
                          0
                          • ש שמואל הסיני

                            @רוטב-שום 79776314-799d-475a-9e12-7c5dbb03a371-image.jpeg

                            ר מנותק
                            ר מנותק
                            רוטב שום
                            כתב נערך לאחרונה על ידי רוטב שום
                            #123

                            @שמואל-הסיני התבלבלת המספר שלי זה 80657 ולא60857

                            ש תגובה 1 תגובה אחרונה
                            0
                            • ר רוטב שום

                              @שמואל-הסיני התבלבלת המספר שלי זה 80657 ולא60857

                              ש מנותק
                              ש מנותק
                              שמואל הסיני
                              כתב נערך לאחרונה על ידי
                              #124

                              @רוטב-שום כתב:

                              @שמואל-הסיני התבלבלת המספר שלי זה 80657 ולא60857

                              אויש אני מנסה עכשיו טוב?

                              ר תגובה 1 תגובה אחרונה
                              0
                              • ש שמואל הסיני

                                @רוטב-שום כתב:

                                @שמואל-הסיני התבלבלת המספר שלי זה 80657 ולא60857

                                אויש אני מנסה עכשיו טוב?

                                ר מנותק
                                ר מנותק
                                רוטב שום
                                כתב נערך לאחרונה על ידי
                                #125

                                @שמואל-הסיני אוקי

                                1 תגובה 1 תגובה אחרונה
                                0
                                • ר רוטב שום

                                  @שמואל-הסיני אוקי

                                  1 מנותק
                                  1 מנותק
                                  106
                                  כתב נערך לאחרונה על ידי
                                  #126

                                  @רוטב-שום @שמואל-הסיני
                                  תעדכנו אם הצלחתם...

                                  ש תגובה 1 תגובה אחרונה
                                  🙏
                                  0
                                  • 1 106

                                    @רוטב-שום @שמואל-הסיני
                                    תעדכנו אם הצלחתם...

                                    ש מנותק
                                    ש מנותק
                                    שמואל הסיני
                                    כתב נערך לאחרונה על ידי שמואל הסיני
                                    #127

                                    @106 כתב:

                                    @רוטב-שום @שמואל-הסיני
                                    תעדכנו אם הצלחתם...

                                    לא הצלחנו.
                                    זה נראה קצת, לא עובד...
                                    ושנינו בנט פרי...

                                    תגובה 1 תגובה אחרונה
                                    2
                                    • א מנותק
                                      א מנותק
                                      אהרן
                                      כתב נערך לאחרונה על ידי
                                      #128

                                      הרצתי בין 2 מחשבים ברשת שלי ולא עבד, שאלתי את גמיני וזו תשובתו

                                      בצילום המסך שהעלת מופיעות שתי שגיאות ברורות בקונסולה (F12) שמסבירות בדיוק מדוע החיבור אינו מצליח להתבצע:

                                      בעיה 1: שגיאות 406 (Not Acceptable) מול Supabase
                                      שגיאה זו נובעת מאופן הפעולה של המתודה .single() בקוד. בכל 4 שניות, האפליקציה מריצה לולאה שבודקת ב-Supabase האם יש קריאה נכנסת המיועדת ל-ID שלך:

                                      const { data, error } = await supabaseClient.from('calls').select('*').eq('id', myID).single();
                                      כאשר אין קריאה פעילה (שזהו המצב הרגיל רוב הזמן), בסיס הנתונים מחזיר 0 שורות. ב-Supabase, המתודה .single() מתוכננת לזרוק שגיאת HTTP 406 כאשר חוזר מספר שורות שאינו בדיוק 1. למרות שהקוד עוטף זאת ב-try-catch, הדפדפן עדיין רושם את השגיאה הזו באדום בקונסולה ומציף אותה.

                                      הפתרון: יש להחליף את ה-.single() במתודה בשם .maybeSingle(). מתודה זו מחזירה ערך ריק (null) בצורה שקטה וללא שגיאות כאשר אין נתונים בטבלה.

                                      בעיה 2: הרצה מקומית מפרוטוקול file:// (הסיבה המרכזית לחוסר החיבור)
                                      בקונסולה מופיעה השגיאה:
                                      Unsafe attempt to load URL file:///C:/Users/OWNER/Downloads/...

                                      הרצת את קובץ ה-HTML ישירות מהורדות המחשב על ידי לחיצה כפולה (כתובת הדפדפן מתחילה ב-file:///). דפדפנים מודרניים חוסמים תכונות רשת מתקדמות של WebRTC, אבטחה והצפנה כאשר הן מורצות ישירות מתוך קובץ מקומי, מכיוון שהוא מוגדר כסביבה לא מאובטחת (Insecure Context). כדי שהדפדפן יאפשר ל-WebRTC ליצור חיבור P2P, הוא חייב לרוץ תחת http://localhost (שרת מקומי) או תחת כתובת https:// מאובטחת.

                                      הפתרון:

                                      הרצה מקומית: יש להריץ את הקובץ באמצעות שרת אינטרנט מקומי קטן (למשל, תוסף "Live Server" ב-VS Code, או הרצה דרך פקודה כמו python -m http.server בטרמינל באותה תיקייה) ולגשת אליו דרך הכתובת http://localhost:8000.
                                      הרצה ברשת: להעלות את הקובץ לשרת אירוח חינמי ותומך HTTPS (כמו GitHub Pages, Netlify, או Vercel) ולפתוח אותו משם.
                                      קוד מעודכן לתיקון ה-406
                                      כדי לנקות את שגיאות ה-406 מהקונסולה, מומלץ להחליף את שתי פונקציות האיתות בקוד שלך כך שישתמשו ב-maybeSingle() במקום single(). להלן חלקי הקוד שיש לעדכן:

                                      בלולאת הבדיקה הראשית (שורה 218 בערך):
                                      setInterval(async () => {
                                      if (pc) return;
                                      try {
                                      // שינוי ל-maybeSingle כדי למנוע שגיאות 406
                                      const { data, error } = await supabaseClient.from('calls').select('').eq('id', myID).maybeSingle();
                                      if (data && data.data) {
                                      const payload = JSON.parse(safeAtob(data.data));
                                      if (Date.now() - payload.timestamp > 20000) {
                                      await clearServerData();
                                      return;
                                      }
                                      currentHostID = payload.fromID;
                                      updateHeader(contacts[currentHostID] || currentHostID);
                                      sysMsg("קריאה נכנסת...");
                                      initWebRTC(false, payload.offer, myID);
                                      }
                                      } catch (e) {
                                      console.error("שגיאה בבדיקת שיחות נכנסות:", e);
                                      }
                                      }, 4000);
                                      בתוך פונקציית initWebRTC (שורה 280 בערך):
                                      checkInterval = setInterval(async () => {
                                      // שינוי ל-maybeSingle גם כאן
                                      const { data } = await supabaseClient.from('calls').select('
                                      ').eq('id', myID).maybeSingle();
                                      if (data && data.data) {
                                      const resData = JSON.parse(safeAtob(data.data));
                                      if (resData.type === 'answer' && pc.signalingState === "have-local-offer") {
                                      pc.setRemoteDescription(new RTCSessionDescription(JSON.parse(resData.answer)));
                                      clearInterval(checkInterval);
                                      }
                                      }
                                      }, 3000);
                                      לאחר שתבצע את השינויים הללו בקוד ותריץ את האפליקציה דרך Localhost או דרך שרת אינטרנט מאובטח (ולא בלחיצה כפולה על הקובץ), החיבור אמור להתבצע בהצלחה.

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

                                      צול גאהצ 1 2 תגובות תגובה אחרונה
                                      0
                                      • א אהרן

                                        הרצתי בין 2 מחשבים ברשת שלי ולא עבד, שאלתי את גמיני וזו תשובתו

                                        בצילום המסך שהעלת מופיעות שתי שגיאות ברורות בקונסולה (F12) שמסבירות בדיוק מדוע החיבור אינו מצליח להתבצע:

                                        בעיה 1: שגיאות 406 (Not Acceptable) מול Supabase
                                        שגיאה זו נובעת מאופן הפעולה של המתודה .single() בקוד. בכל 4 שניות, האפליקציה מריצה לולאה שבודקת ב-Supabase האם יש קריאה נכנסת המיועדת ל-ID שלך:

                                        const { data, error } = await supabaseClient.from('calls').select('*').eq('id', myID).single();
                                        כאשר אין קריאה פעילה (שזהו המצב הרגיל רוב הזמן), בסיס הנתונים מחזיר 0 שורות. ב-Supabase, המתודה .single() מתוכננת לזרוק שגיאת HTTP 406 כאשר חוזר מספר שורות שאינו בדיוק 1. למרות שהקוד עוטף זאת ב-try-catch, הדפדפן עדיין רושם את השגיאה הזו באדום בקונסולה ומציף אותה.

                                        הפתרון: יש להחליף את ה-.single() במתודה בשם .maybeSingle(). מתודה זו מחזירה ערך ריק (null) בצורה שקטה וללא שגיאות כאשר אין נתונים בטבלה.

                                        בעיה 2: הרצה מקומית מפרוטוקול file:// (הסיבה המרכזית לחוסר החיבור)
                                        בקונסולה מופיעה השגיאה:
                                        Unsafe attempt to load URL file:///C:/Users/OWNER/Downloads/...

                                        הרצת את קובץ ה-HTML ישירות מהורדות המחשב על ידי לחיצה כפולה (כתובת הדפדפן מתחילה ב-file:///). דפדפנים מודרניים חוסמים תכונות רשת מתקדמות של WebRTC, אבטחה והצפנה כאשר הן מורצות ישירות מתוך קובץ מקומי, מכיוון שהוא מוגדר כסביבה לא מאובטחת (Insecure Context). כדי שהדפדפן יאפשר ל-WebRTC ליצור חיבור P2P, הוא חייב לרוץ תחת http://localhost (שרת מקומי) או תחת כתובת https:// מאובטחת.

                                        הפתרון:

                                        הרצה מקומית: יש להריץ את הקובץ באמצעות שרת אינטרנט מקומי קטן (למשל, תוסף "Live Server" ב-VS Code, או הרצה דרך פקודה כמו python -m http.server בטרמינל באותה תיקייה) ולגשת אליו דרך הכתובת http://localhost:8000.
                                        הרצה ברשת: להעלות את הקובץ לשרת אירוח חינמי ותומך HTTPS (כמו GitHub Pages, Netlify, או Vercel) ולפתוח אותו משם.
                                        קוד מעודכן לתיקון ה-406
                                        כדי לנקות את שגיאות ה-406 מהקונסולה, מומלץ להחליף את שתי פונקציות האיתות בקוד שלך כך שישתמשו ב-maybeSingle() במקום single(). להלן חלקי הקוד שיש לעדכן:

                                        בלולאת הבדיקה הראשית (שורה 218 בערך):
                                        setInterval(async () => {
                                        if (pc) return;
                                        try {
                                        // שינוי ל-maybeSingle כדי למנוע שגיאות 406
                                        const { data, error } = await supabaseClient.from('calls').select('').eq('id', myID).maybeSingle();
                                        if (data && data.data) {
                                        const payload = JSON.parse(safeAtob(data.data));
                                        if (Date.now() - payload.timestamp > 20000) {
                                        await clearServerData();
                                        return;
                                        }
                                        currentHostID = payload.fromID;
                                        updateHeader(contacts[currentHostID] || currentHostID);
                                        sysMsg("קריאה נכנסת...");
                                        initWebRTC(false, payload.offer, myID);
                                        }
                                        } catch (e) {
                                        console.error("שגיאה בבדיקת שיחות נכנסות:", e);
                                        }
                                        }, 4000);
                                        בתוך פונקציית initWebRTC (שורה 280 בערך):
                                        checkInterval = setInterval(async () => {
                                        // שינוי ל-maybeSingle גם כאן
                                        const { data } = await supabaseClient.from('calls').select('
                                        ').eq('id', myID).maybeSingle();
                                        if (data && data.data) {
                                        const resData = JSON.parse(safeAtob(data.data));
                                        if (resData.type === 'answer' && pc.signalingState === "have-local-offer") {
                                        pc.setRemoteDescription(new RTCSessionDescription(JSON.parse(resData.answer)));
                                        clearInterval(checkInterval);
                                        }
                                        }
                                        }, 3000);
                                        לאחר שתבצע את השינויים הללו בקוד ותריץ את האפליקציה דרך Localhost או דרך שרת אינטרנט מאובטח (ולא בלחיצה כפולה על הקובץ), החיבור אמור להתבצע בהצלחה.

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

                                        צול גאהצ מנותק
                                        צול גאהצ מנותק
                                        צול גאה
                                        כתב נערך לאחרונה על ידי
                                        #129

                                        @אהרן יש לי פייתון אבל לא הבנתי מה לנסות

                                        תגובה 1 תגובה אחרונה
                                        0
                                        • א אהרן

                                          הרצתי בין 2 מחשבים ברשת שלי ולא עבד, שאלתי את גמיני וזו תשובתו

                                          בצילום המסך שהעלת מופיעות שתי שגיאות ברורות בקונסולה (F12) שמסבירות בדיוק מדוע החיבור אינו מצליח להתבצע:

                                          בעיה 1: שגיאות 406 (Not Acceptable) מול Supabase
                                          שגיאה זו נובעת מאופן הפעולה של המתודה .single() בקוד. בכל 4 שניות, האפליקציה מריצה לולאה שבודקת ב-Supabase האם יש קריאה נכנסת המיועדת ל-ID שלך:

                                          const { data, error } = await supabaseClient.from('calls').select('*').eq('id', myID).single();
                                          כאשר אין קריאה פעילה (שזהו המצב הרגיל רוב הזמן), בסיס הנתונים מחזיר 0 שורות. ב-Supabase, המתודה .single() מתוכננת לזרוק שגיאת HTTP 406 כאשר חוזר מספר שורות שאינו בדיוק 1. למרות שהקוד עוטף זאת ב-try-catch, הדפדפן עדיין רושם את השגיאה הזו באדום בקונסולה ומציף אותה.

                                          הפתרון: יש להחליף את ה-.single() במתודה בשם .maybeSingle(). מתודה זו מחזירה ערך ריק (null) בצורה שקטה וללא שגיאות כאשר אין נתונים בטבלה.

                                          בעיה 2: הרצה מקומית מפרוטוקול file:// (הסיבה המרכזית לחוסר החיבור)
                                          בקונסולה מופיעה השגיאה:
                                          Unsafe attempt to load URL file:///C:/Users/OWNER/Downloads/...

                                          הרצת את קובץ ה-HTML ישירות מהורדות המחשב על ידי לחיצה כפולה (כתובת הדפדפן מתחילה ב-file:///). דפדפנים מודרניים חוסמים תכונות רשת מתקדמות של WebRTC, אבטחה והצפנה כאשר הן מורצות ישירות מתוך קובץ מקומי, מכיוון שהוא מוגדר כסביבה לא מאובטחת (Insecure Context). כדי שהדפדפן יאפשר ל-WebRTC ליצור חיבור P2P, הוא חייב לרוץ תחת http://localhost (שרת מקומי) או תחת כתובת https:// מאובטחת.

                                          הפתרון:

                                          הרצה מקומית: יש להריץ את הקובץ באמצעות שרת אינטרנט מקומי קטן (למשל, תוסף "Live Server" ב-VS Code, או הרצה דרך פקודה כמו python -m http.server בטרמינל באותה תיקייה) ולגשת אליו דרך הכתובת http://localhost:8000.
                                          הרצה ברשת: להעלות את הקובץ לשרת אירוח חינמי ותומך HTTPS (כמו GitHub Pages, Netlify, או Vercel) ולפתוח אותו משם.
                                          קוד מעודכן לתיקון ה-406
                                          כדי לנקות את שגיאות ה-406 מהקונסולה, מומלץ להחליף את שתי פונקציות האיתות בקוד שלך כך שישתמשו ב-maybeSingle() במקום single(). להלן חלקי הקוד שיש לעדכן:

                                          בלולאת הבדיקה הראשית (שורה 218 בערך):
                                          setInterval(async () => {
                                          if (pc) return;
                                          try {
                                          // שינוי ל-maybeSingle כדי למנוע שגיאות 406
                                          const { data, error } = await supabaseClient.from('calls').select('').eq('id', myID).maybeSingle();
                                          if (data && data.data) {
                                          const payload = JSON.parse(safeAtob(data.data));
                                          if (Date.now() - payload.timestamp > 20000) {
                                          await clearServerData();
                                          return;
                                          }
                                          currentHostID = payload.fromID;
                                          updateHeader(contacts[currentHostID] || currentHostID);
                                          sysMsg("קריאה נכנסת...");
                                          initWebRTC(false, payload.offer, myID);
                                          }
                                          } catch (e) {
                                          console.error("שגיאה בבדיקת שיחות נכנסות:", e);
                                          }
                                          }, 4000);
                                          בתוך פונקציית initWebRTC (שורה 280 בערך):
                                          checkInterval = setInterval(async () => {
                                          // שינוי ל-maybeSingle גם כאן
                                          const { data } = await supabaseClient.from('calls').select('
                                          ').eq('id', myID).maybeSingle();
                                          if (data && data.data) {
                                          const resData = JSON.parse(safeAtob(data.data));
                                          if (resData.type === 'answer' && pc.signalingState === "have-local-offer") {
                                          pc.setRemoteDescription(new RTCSessionDescription(JSON.parse(resData.answer)));
                                          clearInterval(checkInterval);
                                          }
                                          }
                                          }, 3000);
                                          לאחר שתבצע את השינויים הללו בקוד ותריץ את האפליקציה דרך Localhost או דרך שרת אינטרנט מאובטח (ולא בלחיצה כפולה על הקובץ), החיבור אמור להתבצע בהצלחה.

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

                                          1 מנותק
                                          1 מנותק
                                          123 דג מלוח
                                          כתב נערך לאחרונה על ידי 123 דג מלוח
                                          #130

                                          @אהרן

                                          @אהרן כתב:

                                          ודרך פייתון לא יכולתי כי באחד מהמחשבים אין

                                          תנסה את התוכנה המצורפת (mongoose חפש בגוגל), תשים אותה באותה תיקיה ותריץ אותה (יפתח בקונסול) תכנס לכתובת שהAI אמר לך לוקל אוסט:000 לפי מה שרשום בחלון הקונסול (כל שאלה נוספת על התוכנה תשאל את הAI זו תוכנה ידועה)

                                          [mongoose.exe](Invalid MIME type) mongoose

                                          הכי טוב להוריד ע"י שמירת הקישור בשם

                                          mongoose.exe
                                          

                                          (עשיתי את זה בגלל תקלה בפורום, והשם עד הנקודה לאו דוקא כידוע)

                                          תגובה 1 תגובה אחרונה
                                          1

                                          שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

                                          נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.

                                          בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

                                          הרשמה התחברות

                                          • התחברות

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

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