Можно ли отправлять недопустимые пакеты HTTP на Heroku - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть локальный веб-сервер, на котором я могу обрабатывать недействительные HTTP пакеты.Например, те, которые не начинаются со стандартных методов заголовка HTTP, таких как GET POST PUT и т. Д. .

Таким образом, я могу анализировать данные сокетов, даже если они не совместимы с HTTP.Это код:

var express = require("express");
var app = express();
var server = app.listen(process.env.PORT || 5000);

app.get("/", (req, res) => {
  res.send("Hello Riko");
});

onSocketError = err => {
  console.log("Socket Error: " + err);
};

server.on("connection", function(socket) {
  socket.on("data", data => {
    console.log(data.toString());
  });
  console.log("A new connection was made by a client.");
});
server.on("clientError", (err, socket) => {
  console.log("CLIENT ERROR!");
  socket.removeAllListeners("error");
});

Запуск его на Heroku не работает так же.Я отвечаю на TCP-клиент enter image description here запрос:

GET / HTTP / 1.1 \ r \ nHost: rikoto.herokuapp.com \ r \ n \ r \ n

как и ожидалось.Ответное сообщение:

+IPD,246:HTTP/1.1 200 OK
Server: Cowboy
Connection: keep-alive
X-Powered-By: Express
Content-Type: text/html; charset=utf-8
Content-Length: 10
Etag: W/"a-1i9Fh6ETfQADte3Iit4UFXuXMKs"
Date: Thu, 22 Nov 2018 15:09:25 GMT
Via: 1.1 vegur

Hello Riko

Но этот код:

server.on("clientError", (err, socket) => {
  console.log("CLIENT ERROR!");
  socket.removeAllListeners("error");
});

, который отлично работает на моем локальном компьютере, игнорируется Heroku.Это ссылка на приложение: https://rikoto.herokuapp.com/

***** РЕДАКТИРОВАТЬ ***** Я приложил видео, чтобы продемонстрировать проблему: https://youtu.be/c-Q7ge7cuFA

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...