PracticU

שימוש ב-Socket.io בצד שרת

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › שימוש ב-Socket.io בצד שרת
מילון מושגים:
צד שרת - החלק של היישום שרץ בשרת ואחראי על הלוגיקה, מסדי הנתונים והעיבוד שמאחורי הקלעים.
שרת - מחשב או תוכנה שמספקים שירות למחשבים אחרים (לקוחות) ברשת, למשל אחסון קבצים, אתר אינטרנט או מסד נתונים, ומגיבים לבקשות שלהם.
משתנה - שם שמפנה למקום בזיכרון שבו נשמר ערך שיכול להשתנות במהלך ריצת התוכנית, כמו מספר, טקסט או אובייקט.
לקוח - תוכנה או מחשב שפונים לשרת ומבקשים ממנו שירות או מידע, למשל דפדפן שמבקש דף אינטרנט.
HTML - שפת הסימון שבה בונים את מבנה ותוכן דפי האינטרנט, באמצעות תגיות שמגדירות כותרות, פסקאות, קישורים ועוד.
פורט - מספר שמזהה שירות או תהליך מסוים בתוך מחשב, ומאפשר לכוון תעבורת רשת ליעד הנכון. למשל פורט 80 ל-HTTP.
פונקציה - קטע קוד בעל שם שמבצע משימה מוגדרת, מקבל ערכי קלט (פרמטרים) ויכול להחזיר תוצאה. מאפשרת לארגן קוד ולהשתמש בו שוב.
אירוע - התרחשות שהמערכת מזהה ויכולה להגיב לה, כמו לחיצת עכבר, הקשה או סיום פעולה.

שימוש ב-Socket.io בצד שרת
בשלב הראשון מרימים את צד השרת של Socket.io: שרת Express רגיל ולצידו שרת סוקטים שמאזין להתחברויות ולהודעות מלקוחות.
השלבים העיקריים
1. התקנה וייבוא: מתקינים את Express ואת socket.io, ומייבאים אותו למשתנה io.
2. שני שרתים: בקוד יש שרת Express רגיל ושרת סוקטים. כדי להבדיל ביניהם קוראים להם expressServer ו-socketServer.
3. הגשת הלקוח: דרך expressServer מגישים סטטית את קובץ ה-HTML של הלקוח עם express.static.
4. יצירת שרת הסוקטים: מקבלים את הערך שמחזירה expressServer.listen על port 3000 (עד עכשיו לא השתמשנו בו) ומעבירים אותו לפונקציה io, וכך נוצר socketServer.
5. האזנה להתחברות: socketServer.on('connection', ...) נקרא כשלקוח מתחבר, ומקבל את הסוקט של אותו לקוח. מדפיסים הודעה על התחברות ואת מספר הלקוחות הכולל מתוך socketServer.engine.clientsCount.
6. האזנה להודעות: על הסוקט הזה קוראים ל-socket.on עם שם אירוע שאנחנו ממציאים (message from client). הלקוח חייב לשלוח בדיוק את אותו שם. אפשר להאזין לכמה שמות אירועים, למשל גם some other message.
7. האזנה לניתוק: האירוע disconnect מופעל כשהלקוח מתנתק, ושם מדפיסים הודעה ואת מספר הלקוחות שנותרו.
כך השרת מזהה כל לקוח שמתחבר, מקבל ממנו הודעות ויודע מתי הוא עוזב, וההרצאה הבאה בונה את צד הלקוח.
השיעור הבא בקורס: שימוש ב-Socket.io בצד לקוח

פרקי ההרצאה: שימוש ב-Socket.io בצד שרת

  1. 00:00

    התקנת Express ו-Socket.io

  2. 00:56

    שרת Express ושרת סוקט

  3. 01:41

    הנגשת קובץ ה-HTML של הקליינט

  4. 02:23

    העברת ה-listener לשרת הסוקט

  5. 03:20

    האזנה לאירוע connection

תמלול ההרצאה: שימוש ב-Socket.io בצד שרת

הטקסט המלא של הדקות הראשונות בהרצאה «שימוש ב-Socket.io בצד שרת» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:04

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

  2. 00:36

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

  3. 01:27

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

  4. 02:23

    את אותו ליסנר ניתן לו את אקספרס סרבר נקודה ליסן 3000 בדיוק כמו שתמיד היינו עושים יש לנו פה קונסול לוג listening on http://localhost 3000. והמשתנה שהוחזר לנו ה-listener הזה אנחנו שמים אותו פה.

  5. 02:57

    זאת אומרת שעד היום אף פעם לא קיבלנו את המשתנה שמוחזר מפונקציית ה-listen. עכשיו אנחנו מקבלים אותו, מעבירים אותו ל-socket server. נצמצם פה טיפה ויש לנו כאן עכשיו את כל התשתית בכדי להתחיל לבצע האזנה.

  6. 03:18

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

  7. 03:39

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

  8. 04:05

    מה אנחנו עושים? בואו נציג פה איזה הודעה client has been

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: הסבר על Socket.io

ההרצאה הבאה: שימוש ב-Socket.io בצד לקוח

הרצאות קשורות מקורסים אחרים

  • טיפול בשגיאות בצד שרת - Exceptions
  • צד שרת
  • מה זה שרת ?
  • טיפול בקריסות בצד השרת

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React