Сокеты не излучают внутри POST - PullRequest
0 голосов
/ 17 января 2019

Сокет не может излучать внутри конечной точки POST.

socket.emit ("message", messageArr);

Этот POST не генерирует данные сокета. Я пытался отправить некоторые фиктивные данные, и он не работает. Но когда я использую его вне POST, данные приходят без проблем.

Моя идея заключается в том, что мне нужно Передавать сообщение в FE каждый раз, когда приходит POST. Поскольку это Webhook для Twilio (sms).

 app.post("/twilio", (req, res) => {
        if (messageArr.number === req.body.To) {
          try {
            messageArr.body.push({ id: "client", text: req.body.Body });
          } finally {
            socket.emit("message", messageArr);
            console.log("Message Array", messageArr);
          }
        } else {
          messageArr = {
            number: req.body.To,
            body: [
              {
                id: "client",
                text: req.body.Body
              }
            ]
          };
          socket.emit("message", messageArr);
          console.log("Emit message array", messageArr);
        }

1 Ответ

0 голосов
/ 17 января 2019

ваш вызывающий сокет внутри обратного вызова, поэтому он не может найти ссылку на память в нем, поэтому объявите переменную над вашим app.post и вызовите его, чтобы вы могли получить к нему доступ, как показано ниже.

var _socket = socket;
app.post("/twilio", (req, res) => {
    if (messageArr.number === req.body.To) {
      try {
        messageArr.body.push({ id: "client", text: req.body.Body });
      } finally {
        _socket.emit("message", messageArr);
        console.log("Message Array", messageArr);
      }
    } else {
      messageArr = {
        number: req.body.To,
        body: [
          {
            id: "client",
            text: req.body.Body
          }
        ]
      };
      _socket.emit("message", messageArr);
      console.log("Emit message array", messageArr);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...