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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. שאלה כללית ב WebSocket

שאלה כללית ב WebSocket

מתוזמן נעוץ נעול הועבר תכנות
25 פוסטים 4 כותבים 1.7k צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • dovidD מנותק
    dovidD מנותק
    dovid ניהול
    כתב ב נערך לאחרונה על ידי
    #6

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

    אני מניח שאתה מתכוון שהלקוח יידע (כלומר JS שרץ בדפדפן), יש בזה דוגמא בלינק לדעיל:

    connection.onmessage = function (e) {
      console.log('Server: ' + e.data);
    };
    

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

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

    מנצפךמ תגובה 1 תגובה אחרונה
    0
    • מנצפךמ מנותק
      מנצפךמ מנותק
      מנצפך
      השיב לdovid ב נערך לאחרונה על ידי מנצפך
      #7

      @dovid ממש לא.
      אני מתכוון כמו שהקליינט יכול לשלוח בקשת get ב http ולהמתין לתשובה, (זה בעצם מה שעושה הדפדפן), אותו דבר הקליינט יכול לעשות ב WS. ואני שואל אם אותו דבר השרת יכול לעשות. לשלוח לקליינט ולהמתן לתשובה.

      clickoneC תגובה 1 תגובה אחרונה
      0
      • clickoneC מנותק
        clickoneC מנותק
        clickone
        השיב למנצפך ב נערך לאחרונה על ידי clickone
        #8

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

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

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

          @מנצפך בא תספר מה אתה רוצה.

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

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

          מנצפךמ תגובה 1 תגובה אחרונה
          2
          • מנצפךמ מנותק
            מנצפךמ מנותק
            מנצפך
            השיב לdovid ב נערך לאחרונה על ידי
            #10

            @clickone קלע לעצם העניין. אני רוצה לייתר את מזהה ההודעה.
            @dovid , אני רוצה לבקש מהקליינט שישלח לי איזשהו קובץ.

            dovidD תגובה 1 תגובה אחרונה
            0
            • dovidD מנותק
              dovidD מנותק
              dovid ניהול
              השיב למנצפך ב נערך לאחרונה על ידי dovid
              #11

              @מנצפך אמר בשאלה כללית ב WebSocket:

              @clickone קלע לעצם העניין. אני רוצה לייתר את מזהה ההודעה.
              @dovid , אני רוצה לבקש מהקליינט שישלח לי איזשהו קובץ.

              נו אז מה חסר בדוגמאות שכתבתי לך.
              אתה עושה send של הודעה עם המילים please send me ובצד לקוח אתה שולח. אלא שצד הלקוח הוא לא יכול לשלוח קבצים איך שבא לו (הדפדפן לא נותן להיות מלך על מחשב הלקוח), חייבים אינטראקציה של המשתמש, כך שהציור לא שלם.

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

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

              מנצפךמ תגובה 1 תגובה אחרונה
              1
              • מנצפךמ מנותק
                מנצפךמ מנותק
                מנצפך
                השיב לdovid ב נערך לאחרונה על ידי מנצפך
                #12

                @dovid במקרה הזה יש אינטרקציה. אין בעיה מבחינת זה. קח את זה כתיאורטי.

                dovidD תגובה 1 תגובה אחרונה
                0
                • dovidD מנותק
                  dovidD מנותק
                  dovid ניהול
                  השיב למנצפך ב נערך לאחרונה על ידי
                  #13

                  @מנצפך אמר בשאלה כללית ב WebSocket:

                  @dovid במקרה הזה יש אינטרקציה. אין בעיה מבחינת זה.

                  אז איפה כן הבעיה...

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

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

                  clickoneC תגובה 1 תגובה אחרונה
                  0
                  • clickoneC מנותק
                    clickoneC מנותק
                    clickone
                    השיב לdovid ב נערך לאחרונה על ידי
                    #14

                    @dovid
                    הרי יכול להיות 10 בקשות במקביל
                    אז במקום לעשות טוקן לכל בקשה ולבדוק מה חזר, הוא רוצה לוותר ע"ז.
                    לא נראה שיש דרך נורמלית לזה.
                    אלא אם כן הוא יכתוב או ימצא מחלקה שמטפלת בזה באופן חד פעמי

                    אין טסט כמו פרודקשן.

                    המייל שלי urivpn@gmail.com

                    dovidD תגובה 1 תגובה אחרונה
                    1
                    • dovidD מנותק
                      dovidD מנותק
                      dovid ניהול
                      השיב לclickone ב נערך לאחרונה על ידי
                      #15

                      @clickone אמר בשאלה כללית ב WebSocket:

                      @dovid
                      הרי יכול להיות 10 בקשות במקביל
                      אז במקום לעשות טוקן לכל בקשה ולבדוק מה חזר, הוא רוצה לוותר ע"ז.
                      לא נראה שיש דרך נורמלית לזה.
                      אלא אם כן הוא יכתוב או ימצא מחלקה שמטפלת בזה באופן חד פעמי

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

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

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

                      clickoneC תגובה 1 תגובה אחרונה
                      2
                      • clickoneC מנותק
                        clickoneC מנותק
                        clickone
                        השיב לdovid ב נערך לאחרונה על ידי
                        #16

                        @dovid
                        אבל אצל אותו לקוח יכול להיות 10 בקשות של קבצים

                        אין טסט כמו פרודקשן.

                        המייל שלי urivpn@gmail.com

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

                          @clickone אמר בשאלה כללית ב WebSocket:

                          @dovid
                          אבל אצל אותו לקוח יכול להיות 10 בקשות של קבצים

                          נו אז שהבקשה תהיה please send file number 3.
                          תתארו סיפור שלם מהתחלה לסוף כי אני מרגיש שאנחנו לא על אותו גל.

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

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

                          clickoneC תגובה 1 תגובה אחרונה
                          0
                          • מנצפךמ מנותק
                            מנצפךמ מנותק
                            מנצפך
                            כתב ב נערך לאחרונה על ידי
                            #18

                            @dovid אני חושב שקיבלתי את המידע שרציתי מהפוסט הזה.
                            שלמעשה לא ניתן לבצע (בצורה נורמלית) בקשת get משרת לקליינט. ואצטרך לממש את זה איכשהו.
                            תודה.

                            dovidD תגובה 1 תגובה אחרונה
                            1
                            • dovidD מנותק
                              dovidD מנותק
                              dovid ניהול
                              השיב למנצפך ב נערך לאחרונה על ידי
                              #19

                              @מנצפך אמר בשאלה כללית ב WebSocket:

                              @dovid אני חושב שקיבלתי את המידע שרציתי מהפוסט הזה.
                              שלמעשה לא ניתן לבצע (בצורה נורמלית) בקשת get משרת לקליינט. ואצטרך לממש את זה איכשהו.
                              תודה.

                              תרגיש בנח להבין מה שרצית אבל דבריך חסרי פשר בעיני.

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

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

                              תגובה 1 תגובה אחרונה
                              1
                              • clickoneC מנותק
                                clickoneC מנותק
                                clickone
                                השיב לdovid ב נערך לאחרונה על ידי
                                #20

                                @dovid
                                ה3 זה הטוקן 😮
                                הוא רוצה לברוח מהטוקן. זה הכל.
                                (לחסוך כמה שורות קוד וכנראה כמה כאבי ראש 🙂 )

                                אין טסט כמו פרודקשן.

                                המייל שלי urivpn@gmail.com

                                תגובה 1 תגובה אחרונה
                                2
                                • א מנותק
                                  א מנותק
                                  אהרן
                                  השיב לdovid ב נערך לאחרונה על ידי
                                  #21

                                  @dovid אמר בשאלה כללית ב WebSocket:

                                  wss.on('connection', c => clients.push(_ws)

                                  דוד
                                  מה זה _ws

                                  wss.on('connection', c => clients.push(_ws)
                                  
                                  dovidD תגובה 1 תגובה אחרונה
                                  0
                                  • dovidD מנותק
                                    dovidD מנותק
                                    dovid ניהול
                                    השיב לאהרן ב נערך לאחרונה על ידי
                                    #22

                                    @אהרן אמר בשאלה כללית ב WebSocket:

                                    @dovid אמר בשאלה כללית ב WebSocket:

                                    wss.on('connection', c => clients.push(_ws)

                                    דוד
                                    מה זה _ws

                                    wss.on('connection', c => clients.push(_ws)
                                    

                                    טעות, צריך לשנות לc.

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

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

                                    תגובה 1 תגובה אחרונה
                                    1
                                    • מנצפךמ מנותק
                                      מנצפךמ מנותק
                                      מנצפך
                                      כתב ב נערך לאחרונה על ידי מנצפך
                                      #23

                                      https://stackoverflow.com/a/6756431
                                      כאן יש אפשרות לעשות emit, ואז לחכות להאזין לתשובה שחוזרת.

                                      Server
                                      
                                      var io = require('socket.io').listen(80);
                                      
                                      io.sockets.on('connection', function (socket) {
                                          socket.on("getSomeData", function (name, fn) {
                                              fn({ data: "some random data" });
                                          });
                                      });
                                      
                                      Client
                                      
                                          < script src = "http://localhost/socket.io/socket.io.js" ></script >
                                              <script>
                                                  var socket = io.connect('http://localhost');
                                        socket.emit("getSomeData", function(data) {
                                                      console.log(data);
                                                  });
                                      </script>
                                      

                                      זה בגדול מה שחיפשתי. שימו לב שהקליינט שולח בקשה "getSomeDate", ומקבל את ה data שהוא רוצה.
                                      פשוט וקל.

                                      א תגובה 1 תגובה אחרונה
                                      3
                                      • dovidD מנותק
                                        dovidD מנותק
                                        dovid ניהול
                                        כתב ב נערך לאחרונה על ידי
                                        #24

                                        socket.io זה מחלקה מנהלת לWebSocket.
                                        אני עניתי לך על הארכיטקטורה, שעימה אפשר לעשות הכל.

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

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

                                        תגובה 1 תגובה אחרונה
                                        2
                                        • א מנותק
                                          א מנותק
                                          אהרן
                                          השיב למנצפך ב נערך לאחרונה על ידי
                                          #25

                                          @מנצפך אמר בשאלה כללית ב WebSocket:

                                          https://stackoverflow.com/a/6756431
                                          כאן יש אפשרות לעשות emit, ואז לחכות להאזין לתשובה שחוזרת.

                                          Server
                                          
                                          var io = require('socket.io').listen(80);
                                          
                                          io.sockets.on('connection', function (socket) {
                                              socket.on("getSomeData", function (name, fn) {
                                                  fn({ data: "some random data" });
                                              });
                                          });
                                          
                                          Client
                                          
                                              < script src = "http://localhost/socket.io/socket.io.js" ></script >
                                                  <script>
                                                      var socket = io.connect('http://localhost');
                                            socket.emit("getSomeData", function(data) {
                                                          console.log(data);
                                                      });
                                          </script>
                                          

                                          זה בגדול מה שחיפשתי. שימו לב שהקליינט שולח בקשה "getSomeDate", ומקבל את ה data שהוא רוצה.
                                          פשוט וקל.

                                          רק להוסיף
                                          שאפשר גם לשלוח דאטא, רק לדאוג שהארגומנט האחרון יהיה הפונקציה

                                          var socket = io.connect('http://localhost');
                                            socket.emit("getSomeData", 'this is data', function(data) {
                                                          console.log(data);
                                                      });
                                          
                                          תגובה 1 תגובה אחרונה
                                          2

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

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

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