כבר כולם בטח קראו את החזון שלי, שתהיה מחלקה נורמלית לתכנות מערכות בAPI ימות.
המטרה שקוד למערכות בימות ייראה כך:
call = new yemotCall(apiCallId)
call.playFile("file")
f = call.read("file", 1, 5, ...)
call.goToFolder("/7/" + f)
call.hangup()
אלו הנתונים:
המשתמש נכנס לשלוחה, והשלוחה שולחת בקשה לשרת, "מה לעשות איתו?".
השרת עונה תשובה, השלוחה מבצעת, ומיד שלוחת שוב בקשה - "ומה עכשיו?" עם נתוני הפעולה הקודמת.
בכל בקשה, נשלח מזהה השיחה של המשתמש, המשתנה בכל שיחה למערכת.
בעצם, מה שצריך, זה תוכנה שתרוץ כל הזמן, וכשנכנס משתמש, תיצור עבורו תהליך חדש (לאו דווקא, אלא לדוגמא) שיריץ איזה קטע קוד.
ברגע שהמשתמש שוב ייכנס לשלוחה=ישלח בקשה, היא תשלח אותו (ע"פ מזהה המשתמש) לתהליך הקיים כבר, והוא ימשיך מאיפה שהיה.
לדוגמא בקוד למעלה שורה שלוש, השלוחה תשלח בקשה, תקבל בתשובה לאסוף את הקשות המשתמש, ותשלח אותם בבקשה הבאה. בבקשה הבאה, פשוט הקוד ימשיך מאיפה שהיה, המשתנה F יאותחל עם ערך, והמשתמש יועבר לתיקייה שבחר.
f = call.read("file", 1, 5, ...)
call.goToFolder("/7/" + f)
ישבתי על זה, איך אפשר ליישם כזה דבר.
ניסיתי פייתון, והסתבכתי...
ואז חשבתי שנוד לכ' יותר יתאים, כי שפה א-סינכרונית מטבעה יותר נועדה לכאלה קונצים.
אז אני מניח שזה לא אמור להיות תהליך-משנה של ממש לכל משתמש,
אלא יותר בכיוון של אירועים וקולבקים.
אז שורה התחתונה, איך אפשר ליישם כזה דבר?
מה הכיוון?
אני בינתיים מנסה ללמוד את נוד, אבל אשמח למי שייתן כאן כיוון ליישם את זה,
גם אם בשפה או יישום אחר ממה שהצעתי.