yemot-router2
-
@צדיק-תמים שיניתי
עכשיו אין שגיאות אבל כשנכנסים לשרת הוא רק טוען וטוען
גם ששמתי את הקישור בשלוחת API לא שומעים כלום -
@עידו
מה הקוד ששמת? -
import express from 'express'; import { YemotRouter } from 'yemot-router2'; import { fileURLToPath } from 'url'; import process from 'process'; export const app = express(); export const router = YemotRouter({ printLog: true, uncaughtErrorHandler: (error, call) => { console.log(`Uncaught error in ${call.req.path} from ${call.phone}. error stack: ${error.stack}`); // do something with the error - like send email to developer, print details log, etc. return call.id_list_message([{ type: 'text', data: 'אירעה שגיאה' }]); // play nice error message to the caller } }); router.events.on('call_hangup', (call) => { console.log(`[example.js] call ${call.callId} was hangup`); }); router.events.on('call_continue', (call) => { console.log(`[example.js] call ${call.callId} was continue`); }); router.events.on('new_call', (call) => { console.log(`[example.js] new call ${call.callId} from ${call.phone}`); }); /** @param {import('yemot-router2').Call} call */ async function callHandler (call) { // לא ניתן להתקדם ללא הקשת 10 וסולמית await call.read([{ type: 'text', data: 'היי, תקיש 10' }], 'tap', { max_digits: 2, min_digits: 2, digits_allowed: ['10'] }); const name = await call.read([{ type: 'text', data: 'שלום, אנא הקש את שמך המלא' }], 'tap', { typing_playback_mode: 'HebrewKeyboard' }); console.log('name:', name); const addressFilePath = await call.read( [ { type: 'text', data: 'שלום ' + name }, { type: 'text', data: 'אנא הקלט את הרחוב בו אתה גר' } ], 'record', { removeInvalidChars: true } ); console.log('address file path:', addressFilePath); // 💰 קטע זה משתמש בזיהוי דיבור ודורש יחידות במערכת 💰 const text = await call.read([{ type: 'text', data: 'אנא אמור בקצרה את ההודעה שברצונך להשאיר' }], 'stt'); console.log('user message:', text); // לאחר השמעת ההודעה יוצא אוטומטית מהשלוחה // לשרשור פעולות לאחר השמעת ההודעה יש להגדיר prependToNextAction: true, ראה בREADME return call.id_list_message([{ type: 'system_message', data: 'M1399' // תגובתך התקבלה בהצלחה }]); }; router.get('/', callHandler); // this must if you want to use post requests (api_url_post=yes) app.use(express.urlencoded({ extended: true })); app.use('/', router); const port = 3000; const isMain = process.argv[1] === fileURLToPath(import.meta.url); if (isMain) { app.listen(port, () => { console.log(`example yemot-router2 running on port ${port}`); }); }
-
@פיסטוק-פרווה שמתי בשרת קבצי index.js package.json package-lock.json כמו שבתיעוד.
-
@עידו נשמע חומת אש (firewall)
ואל תעתיק את כל התיקייה כמו שהיא. תנסה להבין איך package json עובד ותתקן את הספריה כמו שצריך. אבל את הקוד אפשר לעשות העתק הדבק -
@צדיק-תמים פתחתי פורט 3000 בחומת אש ועדיין עושה בעיות
-
@עידו כשאני נכנס לפורט 3000 זה אכן נכנס בלי בעיות
http://node.stamandsefer.co.il:3000/
בתמונה לעיל אתה נכנס לפורט 80
http://node.stamandsefer.co.il -
@צדיק-תמים על השרת עצמו הוא רץ
עשיתי
node index.js
ויצא
example yemot-router2 running on port 3000יצרתי כזה פרויקט במחשב וגם שם הוא מציג אותו הדבר
-
@צדיק-תמים כתב בyemot-router2:
@עידו כשאני נכנס לפורט 3000 זה אכן נכנס בלי בעיות
http://node.stamandsefer.co.il:3000/הוא אומר מענה ריק
-
@צדיק-תמים איך מתקדמים עם זה בימות המשיח?
-
@עידו כתב בyemot-router2:
@צדיק-תמים כתב בyemot-router2:
@עידו כשאני נכנס לפורט 3000 זה אכן נכנס בלי בעיות
http://node.stamandsefer.co.il:3000/הוא אומר מענה ריק
עכשיו, נכון
בכל מקרה כל זה לא קשור לספריה אלא לפריסה של הקוד בשרת -
מישהו יודע מה עושים הלאה?
כי לא נראה לי תקין להכניס בשלוחה http://node.stamandsefer.co.il:3000/ -
@עידו לא תקין מאיזו בחינה?
אין בזה שום בעיה טכנית. אתה יכול לשנות בקוד/ברברס פרוקסי לפורט 80 אם ממש מפריע לך המראה של המספרים בסוף -
@צדיק-תמים מה שכתבתי במתמחים.
למה באמת כולם עושים את זה על פורט 3000? מה רע ב80? -
@עידו בדרך כלל דווקא לא עושים ככה אלא מאזינים בתוך השרת על פורט גבוה כלשהוא (האזנה לפורטים מתחת 1024 מצריכה הרצה כמנהל) ומשתמשים ברברס פרוקסי כמו nginx כדי לייצא את זה על פורט 80/443 לפי דומיין
-
@צדיק-תמים לא מבין... יותר נכון לא מבין איך עושים את זה. כנראה צריך יותר להכיר את המושגים.
תודה
-
@צדיק-תמים כתב בyemot-router2:
@עידו בדרך כלל דווקא לא עושים ככה אלא מאזינים בתוך השרת על פורט גבוה כלשהוא (האזנה לפורטים מתחת 1024 מצריכה הרצה כמנהל) ומשתמשים ברברס פרוקסי כמו nginx כדי לייצא את זה על פורט 80/443 לפי דומיין
זה בעצם הורות האלה?
RewriteEngine On RewriteRule ^(.*)$ http://127.0.0.1:3000/$1 [P,L]
-
@עידו חסר דגל QSA
-
@צדיק-תמים כבר ענית, יכולת להוסיף את הקוד המתוקן.
תודה
-
@עידו ואז תמיד תצטרך לבקש ממני? למה שלא תנסה להבין את התחביר? זה סך הכל 2 שורות