是否可以在Heroku上发送无效的HTTP包

时间:2018-11-22 15:14:39

标签: node.js heroku

我有一个本地Web服务器,可以在其中处理无效的 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 \ n主机: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

0 个答案:

没有答案