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

    מודול API - ביצוע פעולות על רשימה שחוזרת מהשרת

    עזרה הדדית למשתמשים מתקדמים
    9
    36
    1400
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • הגיבו כנושא
    התחברו בכדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • ה
      הלי @צדיק תמים נערך לאחרונה על ידי

      @צדיק-תמים ימות המשיח שולחים קריאות בעקרון לphp לא?

      צ תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • צ
        צדיק תמים מומחה @הלי נערך לאחרונה על ידי

        @הלי כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

        @צדיק-תמים ימות המשיח שולחים קריאות בעקרון לphp לא?

        🙄 ממש לא

        תגובה 1 תגובה אחרונה תגובה ציטוט 2
        • C
          Chaim @צדיק תמים נערך לאחרונה על ידי

          @צדיק-תמים כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

          @Chaim כמו שכתבו הפתרון הוא read, כדאי לכתוב את זה בnode.js כי יש ספריה שנבנתה ע"י @מאזין-נלהב ושופרה על ידי.
          https://github.com/ShlomoCode/yemot-router2
          הקוד ייראה בערך ככה:

             for (let i = 0; i < messages.length; i++) {
                  const message = messages[i];
                  const resp = await call.read([message], 'tap', { block_change_type_lang: true, read_none: true,  sec_wait: 1, max: 1 });
                  // הדגמה - אם הקיש 2 תוך כדי שם התחנה - לחזור לתחנה קודמת
                  if (resp === '2') {
                      if (i === 0) { // שלא יגיע למספר שלילי
                          i -= 1;
                      } else {
                          i -= 2;
                      }
                  }
              }
          

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

          אני ב- #C. רוצה להבין יותר ברור.

          1. אני צריך לשמור היכן שהוא את הרשימה ?
          2. איך אני יודע באיזה פריט המאזין אוחז ?

          הרי בכל פעם שמאזין מגיב (או לא מגיב), ימות חוזרים אלי לשרת כאילו מהתחלה, לא כן ?
          אז לגבי שאלה 2, אולי אגדיר לכל פריט שאני שולח למאזין, משתנה הכולל את האינדקס (לדוגמא MSG_1) ואז יצטברו בURL כל הפריטים, ובכל פעם אבדוק מה הפריט האחרון שהתווסף וכד' ?
          אבל עדיין מה עם שאלה 1 - היכן לשמור את הרשימה ? ב-DB - לפי המס' שהתקשר ? נראה לי קצת מדאי הרבה פעולות על כל פריט (שליפה מ-DB וכו') המאזין יצטרך לנוח בין כל פריט ופריט....

          תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • צ
            צדיק תמים מומחה @Chaim נערך לאחרונה על ידי צדיק תמים

            @Chaim הקוד שכתבתי הוא בnode.js, כיוון ששם יש ספריה, שמפשטת את הקוד.
            בכל שפה אחרת, תצטרך לבד לנהל את כל הערכים בURL, לשמור על המצב בין הקריאות, וכן הלאה.
            במקרים מורכבים זה ממש ממש כאב ראש...

            @Chaim כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

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

            ממליץ אם כן לכתוב בnode.js עם הספריה הנ"ל.
            אם אתה מתעקש על C#, לא נותר לי אלא לאחל בהצלחה, תעבור קצת על קודים בפורום ותראה איך משתמשים מתמודדים עם הבעיה שכל בקשה מריצה את הקוד מההתחלה (בשפות אחרות).


            @Chaim כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

            הרי בכל פעם שמאזין מגיב (או לא מגיב), ימות חוזרים אלי לשרת כאילו מהתחלה, לא כן ?

            לא מדויק. בURL יהיה גם את כל הערכים הקודמים.
            כדאי לקרוא בעיון את https://f2.freeivr.co.il/post/78283

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

            @Chaim כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

            אבל עדיין מה עם שאלה 1 - היכן לשמור את הרשימה ? ב-DB - לפי המס' שהתקשר ? נראה לי קצת מדאי הרבה פעולות על כל פריט (שליפה מ-DB וכו') המאזין יצטרך לנוח בין כל פריט ופריט....

            אין סיבה בdb, אפשר במשתנה גלובלי כלשהו, כלומר משתנה שמחזיק בין הבקשות.
            לדוגמה בexpress (node.js) יש את app.locals, או סתם משתנה שמוגדר בסקופ יותר גבוה.
            כנ"ל בפייתון, ע"י המילה השמורה global

            C ש 3 תגובות תגובה אחרונה תגובה ציטוט 0
            • C
              Chaim @צדיק תמים נערך לאחרונה על ידי

              @צדיק-תמים תודה רבה לך!

              תגובה 1 תגובה אחרונה תגובה ציטוט 1
              • C
                Chaim @צדיק תמים נערך לאחרונה על ידי Chaim

                @צדיק-תמים כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

                ממליץ אם כן לכתוב בnode.js עם הספריה הנ"ל.
                אם אתה מתעקש על C#, לא נותר לי אלא לאחל בהצלחה, תעבור קצת על קודים בפורום ותראה איך משתמשים מתמודדים עם הבעיה שכל בקשה מריצה את הקוד מההתחלה (בשפות אחרות).

                @צדיק-תמים כברכתך ... כתבתי אכן ב-#C בהצלחה ב"ה. אכן חייבים ספריה מסודרת אחרת אפשר להתבלבל בגדול. ואכן לצורך כך פיתחתי את HTP.Yemot.NET שניתן להוריד אותה מכאן. בהמשך אשתדל לתעד ולהוסיף דוגמאות. בנתיים ניתן להשתמש בה בהצלחה.

                ב C צ 3 תגובות תגובה אחרונה תגובה ציטוט 1
                • ב
                  בוס @Chaim נערך לאחרונה על ידי

                  @Chaim הקישורים חסומים

                  C תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • C
                    Chaim @בוס נערך לאחרונה על ידי

                    @בוס כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

                    @Chaim הקישורים חסומים

                    זה ב- github
                    https://github.com/chaimhtp/HTP.Yemot.NET
                    חסום לך github ?

                    ב תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • ב
                      בוס @Chaim נערך לאחרונה על ידי

                      @Chaim אני בחדר מחשבים אז כנראה שכך מוגדר
                      צילום מסך 2023-04-26 160640.png

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • C
                        Chaim @Chaim נערך לאחרונה על ידי

                        @Chaim כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

                        @צדיק-תמים כברכתך ... כתבתי אכן ב-#C בהצלחה ב"ה. אכן חייבים ספריה מסודרת אחרת אפשר להתבלבל בגדול. ואכן לצורך כך פיתחתי את HTP.Yemot.NET שניתן להוריד אותה מכאן. בהמשך אשתדל לתעד ולהוסיף דוגמאות. בנתיים ניתן להשתמש בה בהצלחה.

                        שיפרתי את התיעוד והדוגמאות.
                        פתחתי נושא חדש בנידון.

                        תגובה 1 תגובה אחרונה תגובה ציטוט 1
                        • צ
                          צדיק תמים מומחה @Chaim נערך לאחרונה על ידי

                          @Chaim קודם כל זה יפה מאוד, היוזמה והביצוע,
                          אבל אם אני מבין נכון, זה רק חצי פתרון - חוסך התעסקות עם סטרינגים ולספור פסיקים וכולי, אבל לא פותר את הבעיה הקריטית יותר, של שימור המצב והמשתנים בין הקריאות,
                          כמו שהספריה של nodejs מאפשרת להריץ את הפונקציה מהתחלה עד הסוף ממש כאילו שזה קריאה אחת

                          C תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • C
                            Chaim @צדיק תמים נערך לאחרונה על ידי

                            @צדיק-תמים כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

                            @Chaim קודם כל זה יפה מאוד, היוזמה והביצוע,
                            אבל אם אני מבין נכון, זה רק חצי פתרון - חוסך התעסקות עם סטרינגים ולספור פסיקים וכולי, אבל לא פותר את הבעיה הקריטית יותר, של שימור המצב והמשתנים בין הקריאות,
                            כמו שהספריה של nodejs מאפשרת להריץ את הפונקציה מהתחלה עד הסוף ממש כאילו שזה קריאה אחת

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

                            צ תגובה 1 תגובה אחרונה תגובה ציטוט 1
                            • צ
                              צדיק תמים מומחה @Chaim נערך לאחרונה על ידי צדיק תמים

                              @Chaim ברור שזה אפשרי, אבל ברור גם שזה פחות נוח וברור, אתה לא יכול לכתוב כזה קוד פשוט וברור:

                              async function someFn (call) {
                                  const count = await call.read([{ type: 'text', data: 'אנא הקש כמות' }], 'tap');
                                  return call.id_list_message([{ type: 'text', data: `הכמות שהוקשה היא ${count}` }]);
                              }
                              

                              בכל אופן שאפו על היוזמה!

                              תגובה 1 תגובה אחרונה תגובה ציטוט 1
                              • הוזכר על-ידי  צ צדיק תמים 
                              • הוזכר על-ידי  צ צדיק תמים 
                              • ש
                                שמואל ש. @צדיק תמים נערך לאחרונה על ידי

                                @צדיק-תמים כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

                                אפשר במשתנה גלובלי כלשהו, כלומר משתנה שמחזיק בין הבקשות.

                                סליחה על ההקפצה אבל זה באותו עניין...
                                איך יכול להיות משתנה שיישאר בין הבקשות אם זה לא node.js וכל בקשה מתחילה את הקוד מחדש?

                                A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • A
                                  amp Software 0 @שמואל ש. נערך לאחרונה על ידי

                                  @שמואל-ש
                                  משתנים גלובלים ברמת סשן כמו שהסבירו לך כאן

                                  ש תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                  • ש
                                    שמואל ש. @amp Software 0 נערך לאחרונה על ידי

                                    @amp-Software-0 כתב במודול API - ביצוע פעולות על רשימה שחוזרת מהשרת:

                                    @שמואל-ש
                                    משתנים גלובלים ברמת סשן כמו שהסבירו לך כאן

                                    חשבתי...
                                    רציתי לדעת אולי יש לו עוד כיוון

                                    A תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                    • A
                                      amp Software 0 @שמואל ש. נערך לאחרונה על ידי

                                      @שמואל-ש
                                      לא שייך בזה עוד כיוון, התשובה היא 'משתנה גלובלי'
                                      כמובן שאתה יכול לממש את זה לא דווקא דרך אובייקט SESSION המבונה ב PHP אלא יכול לעשות את זה באמצעות שמירה ב db או קובץ טקסט על השרת, אבל הרעיון 'משתנה' ששמור באופן חיצוני מהסקריפט עם מזהה כל שהוא שיקשר בין הקריאות

                                      תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                      • פוסט ראשון
                                        פוסט אחרון