פרוקסי ל WebSocket ב NodeJS
-
יש לי שרת סטטי שמביא לי קבצים כגון 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 מהשרת הסטטי.
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות