
הטקסט המלא של הדקות הראשונות בהרצאה «Pattern - Request-Reply» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו מגיעים לנושא שנקרא Message Exchange Pattern, וזה בעצם אומר מהי השיטה שבה הקליינט והסרבר מתקשרים ביניהם מבחינת קריאות לפונקציות. ויש סך הכל שלוש שיטות.
בואו נראה את הראשונה קודם. השיטה הראשונה נקראת Request Reply. מה זה אומר? לקוח, בואו נסתכל רגע על הקוד שלו. יש לנו כאן קריאה לפונקציה, לפונקציה Add.
אז לקוח קורא לפונקציה, שולח לה פרמטרים. הפונקציה יכולה להחזיר ערך והיא יכולה לא להחזיר ערך. כרגע הפונקציה הזאת מחזירה ערך. הפונקציה שבפועל מתבצעת בשרת, בואו נסתכל עליה, במחלקה קלקולטור, נקראת add, מקבלת את הפרמטרים, עושה מה שעושה ומחזירה ערך.
ואז, כאשר הלקוח קורא לה, אז הוא צריך להמתין עד שהפונקציה מסתיימת. ואז הוא מקבל את הערך וממשיך הלאה בקוד שלו. אז בואו נרשום כאן שהשיטה הזאת היא request, מפני שהוא מבצע ריקווייסט וממתין לריפליי מהצד של השרת.
אוקיי, בואו נבדוק את זה. נרים את ההוסט לאוויר, לאחר מכן נרים גם את הלקוח לאוויר, מבצע סטארט-אפ פרוג'קט, נרים אותו, נשלח פרמטרים, ואנחנו רואים שהפעולה עובדת כמו שצריך, הכל בסדר.
אם הלקוח היה לדוגמה לוקח הרבה זמן לביצוע, בואו נשים פה thread sleep 5 שניות ונריץ שוב פעם את צד הלקוח, נכניס ערכים, אנחנו קיבלנו פה שגיאה כי אנחנו מנסים להריץ את הסרוויס גם כן, אז בואו נחבר אותו ונריץ את שניהם ביחד על ידי פרופרטיז, נגדיר בפרופרטיז ששני הפרויקטים רצים, נגדיר שההוסט רץ ראשון, אין צורך בדיבאגינג כרגע,
נגדיר שהConsumer רץ שני ושוב פעם נריץ את שניהם ביחד. אז אם אנחנו מריצים את שניהם עכשיו אנחנו רואים שהלקוח לוקח לו 5 שניות עד שהוא מקבל את התשובה.
במהלך ה-5 שניות האלה הלקוח לא זז מילימטר עד שהוא יקבל את התשובה מפני שהוא חייב לקבל אותה בשביל להמשיך הלאה. זאת אומרת שכל פעם שהשרת מחזיר לי מפונקציה ערך אני חייב פשוט לשבת ולהמתין עד שהערך חוזר אלא