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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. חיבור מרכזייה לתוכנה מקומית (api <> c# winform)

חיבור מרכזייה לתוכנה מקומית (api <> c# winform)

מתוזמן נעוץ נעול הועבר תכנות
8 פוסטים 4 כותבים 299 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • M מנותק
    M מנותק
    mekev
    כתב ב נערך לאחרונה על ידי
    #1

    בניתי תוכנה לניהול עסק בc# winform המתממשקת לSQL

    אני מעוניין לחבר אותה למרכזייה ע"מ להקפיץ למשתמש חלון של שיחה נכנסת
    ומעבר לכרטיס לקוח

    הבעיה שלי היא בשיחות נכנסות
    להיכן לשלוח את המידע מהמרכזייה ואיך אוכל לשלוף אותו לשימוש

    המרכזייה יכולה בכל קבלת שיחה לשלוח לי התרעה (XML/GET/POST) המכילה את מספר המתקשר / ולאיזה מספר חייג

    איך אני מתקדם מכאן?
    איך ואיפה אני אמור לקבל את נתוני הAPI ולהשתמש בו

    האם התהליך אמור להיות שההתרעה מעדכנת/מוסיפה שורה בטבלה במסד נתונים כלשהו
    ובמקביל להריץ טיימר בתוכנה המקומית שיבדוק כל שניה מה המספר שמופיע שם
    ובהתאם לכך לעשות פעולה

    או שיש דרך קלה ונכונה יותר לביצוע

    dovidD שמואל4ש 2 תגובות תגובה אחרונה
    0
    • dovidD מחובר
      dovidD מחובר
      dovid ניהול
      השיב לmekev ב נערך לאחרונה על ידי dovid
      #2

      @mekev רק הערה, בכמה פעמים אחרונות (לא בכולם!) ששאלתם בפורום זה היה נראה "פגע וברח".
      לתשומת לבכם, זה לא מזמין להשקיע בתשובה.

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

      המרכזיה (ג' )מוכנה להודיע לכל מאן דבעי שיש שיחה, אבל בפרוטוקול http, כלומר בקשת אינטרנט.
      האם התוכנה (א') והשרת (ב') זה אותה מחשב? התוכנה רצה על מחשבים מרובים?
      האם למחשב שמריץ את הSQL יש כתובת אייפי פרטית קבועה?

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      M תגובה 1 תגובה אחרונה
      9
      • M מנותק
        M מנותק
        mekev
        השיב לdovid ב נערך לאחרונה על ידי
        #3

        @dovid

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

        2. למחשב שמריץ את הSQL - אכן יש אייפי קבוע

        dovidD תגובה 1 תגובה אחרונה
        0
        • dovidD מחובר
          dovidD מחובר
          dovid ניהול
          השיב לmekev ב נערך לאחרונה על ידי dovid
          #4

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

          מפה יש כמה דרכים:
          א. דרך פשוטה, לעשות טיימר בתוכנה שבודק שורות חדשות בטבלת הSQL, עדיף שהטבלה תהיה עם מפתח ראשי identity והשאילתה תשלוף TOP X עם ORDER BY ID DESC, ככה המסד לא מתאמץ כלל.
          ב. דרך נוספת פשוטה יחסית שראיתי שתוכנות עושות זה לבנות מאזין בתכונה לשינויים בתיקיה מסויימת (FileSystemWatcher) ובעת קבלת שיחה נכנסת השירות כותב לתיקיה זו קובץ ריק.
          ג. הדרך הכי יעילה זה לעשות גם מאזין בתוכנה, מסוג UDP broadcast (דוגמה), ואז התוכנה שרצה ברקע יכולה להודיע לכל התוכנות שהתקבלה שיחה חדשה.

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          M תגובה 1 תגובה אחרונה
          7
          • M מנותק
            M מנותק
            mekev
            השיב לdovid ב נערך לאחרונה על ידי
            #5

            @dovid

            אתה מעמיד אותי בדילמה
            לולי הערתך לגבי ה'פגע וברח'
            הייתי כעת לא מגיב
            והולך לעשות שיעורי בית (איך לבנות את התוכנה הקטנה שתאזין לפרוטוקול HTTP)

            כי ברשותי ידע דל בתכנות (ובאנגלית...)
            ולוקח לי זמן לבדוק ולהבין את התשובות

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

            כך שלהגיב רק "תודה רבה"
            נראה לי שישבש את פעילות הפורום
            (תתאר לעצמך נושא שיש בו שלושים תגובות והשואל מגיב 'תודה' אחרי כל תגובה)

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

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

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

            שבוע טוב ומבורך

            dovidD avramkA 2 תגובות תגובה אחרונה
            5
            • dovidD מחובר
              dovidD מחובר
              dovid ניהול
              השיב לmekev ב נערך לאחרונה על ידי
              #6

              @mekev תודה רבה על הדברים!
              להגיב סתם תודה רבה אבדוק, זה אולי מיותר (אבל ממש לא פוגע בשגרת הפורום, כולו מלא מזה).
              (אגב, יש אפשרות להודות בצורה מינימליסטית מאוד - מתחת לכל הודעה בצד שמאל יש חץ כלפי מעלה שאומר: הפוסט מועיל/ראוי. זה מחווה קטנה ומאוד "מפדבקת" את העונה).
              אבל מה הבעיה לעדכן אחרי חודש? ולמה לא לשתף מה הסיבוך שלך כעת שעליו אתה יוצא למסע בירור, אולי גם בזה הרי יעזרו לך.

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

              מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

              בכל נושא אפשר ליצור קשר dovid@tchumim.com

              תגובה 1 תגובה אחרונה
              8
              • avramkA מנותק
                avramkA מנותק
                avramk
                השיב לmekev ב נערך לאחרונה על ידי
                #7

                @mekev אתה מחפש דווקא את הסינכרון של המרכזחיה עם המערכת ניהול שלך ? או לחילופין מרכזייה בנפרד עם קללינטים ב http וכדו'?

                תגובה 1 תגובה אחרונה
                0
                • שמואל4ש מנותק
                  שמואל4ש מנותק
                  שמואל4
                  השיב לmekev ב נערך לאחרונה על ידי שמואל4
                  #8

                  @mekev אמר בחיבור מרכזייה לתוכנה מקומית (api <> c# winform):

                  בניתי תוכנה לניהול עסק בc# winform המתממשקת לSQL

                  האם התהליך אמור להיות שההתרעה מעדכנת/מוסיפה שורה בטבלה במסד נתונים כלשהו
                  ובמקביל להריץ טיימר בתוכנה המקומית שיבדוק כל שניה מה המספר שמופיע שם
                  ובהתאם לכך לעשות פעולה

                  או שיש דרך קלה ונכונה יותר לביצוע

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

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

                  אין לי יודע מה הצד שרת שלך ולכן אני לא יודע אם בוודאות השיטה הזו מתאימה לך אבל בגלל שלא ציינת את הדברים הללו עניתי את דעתי.

                  עריכה: אני מעין שוב בשאלה ואני מבין שמדובר בתוכנה ולא בממשק אינטרנטי אז יתכן שהתשובה לא רלוונטית.

                  ליצירת קשר:
                  sh@mitm.top

                  תגובה 1 תגובה אחרונה
                  1
                  • dovidD dovid העביר נושא זה מ-תכנות ב-

                  בא תתחבר לדף היומי!
                  • התחברות

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

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