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

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

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

פרוקסי ל WebSocket ב NodeJS

מתוזמן נעוץ נעול הועבר תכנות
3 פוסטים 2 כותבים 152 צפיות 2 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • מנצפךמ
    מנצפךמ
    מנצפך
    כתב ב נערך לאחרונה על ידי מנצפך
    #1

    יש לי שרת סטטי שמביא לי קבצים כגון JS וכו,
    ויש לי שרת API שמיועד לקריאות AJAX.
    כל אחד יושב כמובן על פורט אחר.
    אני רוצה שהקריאה לשרת ה AJAX תתבצע דרך השרת הסטטי, בשביל שלא אצטרך להסתבך עם CROSS ORIGIN ועם תעודות אבטחה וכו.
    מה שעשיתי, כל קריאות הAJAX מתחילות ב /API
    בשרת הסטטי הוספתי middleware שמעביר את כל הקריאות הללו לשרת הAPI.
    הכל עובד טוב ויפה
    (השתמשתי ב
    ExpressJS
    express-http-proxy)
    הבעיה היא בסוקטים.(WebSocket)
    השרת API מחזיק גם שרת ווב-סוקט (באותו פורט).
    הבעיה היא שאני לא מצליח להפנות את הפניות של הוובסוקט לשרת API.

    קליינט ווב סוקט- Socket.IO

    קטע קוד ממה שעשיתי:

    const express = require('express')
    const path = require('path');
    const app = express();
    const proxy = require('express-http-proxy');
    const apiProxy = proxy('localhost:API_PORT/api', {
      proxyReqPathResolver: function (req) {
        return req.originalUrl;
      }
    });
    app.use('/api/*', apiProxy);
    

    הבעיה היא כנראה בגלל שהווב סוקט מגיע בפרוטוקול WS. לכן הוא לא "נתפס" ע"י הMiddleWare של Epxress.

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

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

      הפתרון הוא להשתמש ב

      const enableWs = require('express-ws')
      enableWs(app);
      

      ואז יש תמיכה ב WS.

      הבעיה שלי היא שהקליינט (SocketIO) מתנהג עדיין בצורה מוזרה.
      חלק מקריאות ה Http שלו (לא ה WS), נופלות ללא תשובה.

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

        תשתמש בnginx ותרויח גם פתרון קל וגם ביצועים טובים יותר.

        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
        תגובה 1 תגובה אחרונה
        0

        שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.

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

        בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗

        הרשמה התחברות
        תגובה
        • תגובה כנושא
        התחברו כדי לפרסם תגובה
        • מהישן לחדש
        • מהחדש לישן
        • הכי הרבה הצבעות


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

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

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