Skip to content

Support for http2 #78

Closed
Closed
@FabianEmmes

Description

@FabianEmmes

Currently, compression does not work with http2. I guess, when using http2, doing chunked transfer-enconding is not necessary, so I'm not sure if http2 support is in the scope of this project.

The following code tries to use http2 with compression and throws a TypeError: this._implicitHeader is not a function.

// tested with:
//   "dependencies": {
//     "compression": "^1.6.1",
//     "connect": "^3.4.1",
//     "http2": "^3.3.2"
//   }

var connect = require('connect');
var http2 = require('http2');
var compression = require('compression');

var app = connect();

app.use(compression());

app.use(function(req, res, next){
   for (var i = 1000; i > 0; --i) {
      res.write('test');
   }
   res.end();
});

var options = {
   key: '-----BEGIN PRIVATE KEY-----\nMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBALCFSC+jZCN4JHCj\nI/dXL5ZviSYjc4vvOlFBvA4lYu6ReNqICUw1p9ULp/xVrWR7yEtzq+yB+NMrTD1T\nxO4VYKQrDqrYjnshCSo+kbcvyyOh3gO6nZjdVGj50OdrTNof1IL1NNdiknLvxtT6\n1dER8G6DJ/GdgW8v1P65q0sSXOm7AgMBAAECgYBhUdouiYKYG5DbmNYnc6YE5pFS\nuZDmwYoBaqBnnC0jIoji0sVtgtd5GegPspzaHXScRLWwuyeYJPLvjNOx/487iO4Q\nRvf1mgZJ/f1c5MzAmGgbiFFfm79wYZEOeFHRUTCzSgNndRaRHZEABriOEKarcdN9\nt+S5I6/8SxBdXgiuAQJBAN5eIaFxgzSNcoOzN339IeeteGTlXwyxqi/D4ODHv0Ro\nwvjccSiW9QFmcy5MmxkYuFWzuJTea2qLVgJam0EngsECQQDLN/7DtXb9F3Ljithx\nF3SckZxr0Z6WAYPct5Qe4W1AA/ap6XbNXfzsk3f92Cl3H3DaZTvfRUkIMRaDlsxW\n0dd7AkBDwGp+xhcz6+T4O6KswHOUI0aLd1d+hqNT6lqaIkIklcbSDFhuBZCg3JY7\nhRu8icugUSHsOdiAnfOWxASJ1YABAkAILUed/lY8Vs4zo6mT21rA1gcSO4wDAyqY\nHfbiyzVHJyGsso0qNEbyCfkBCMqaVXSIBRzEnhgTMU5zmwS71ZOzAkEAmYIf3UAO\n3VOSGhRFUiJzo+yJtXd69Z7vJK+jPZ0lZ0Ugo/AD/l8l56Y90sdHUchdJbCUdmwK\n9nsjxgWeUcPg1A==\n-----END PRIVATE KEY-----',
   cert: '-----BEGIN CERTIFICATE-----\nMIICcjCCAdugAwIBAgIJAId3TwNpkpWoMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV\nBAYTAkRFMQwwCgYDVQQIDANOUlcxDzANBgNVBAcMBkFhY2hlbjEQMA4GA1UECgwH\nTGF4YXJKUzESMBAGA1UEAwwJbG9jYWxob3N0MB4XDTE2MDQwNDA5MTYxMFoXDTE3\nMDQwNDA5MTYxMFowUjELMAkGA1UEBhMCREUxDDAKBgNVBAgMA05SVzEPMA0GA1UE\nBwwGQWFjaGVuMRAwDgYDVQQKDAdMYXhhckpTMRIwEAYDVQQDDAlsb2NhbGhvc3Qw\ngZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALCFSC+jZCN4JHCjI/dXL5ZviSYj\nc4vvOlFBvA4lYu6ReNqICUw1p9ULp/xVrWR7yEtzq+yB+NMrTD1TxO4VYKQrDqrY\njnshCSo+kbcvyyOh3gO6nZjdVGj50OdrTNof1IL1NNdiknLvxtT61dER8G6DJ/Gd\ngW8v1P65q0sSXOm7AgMBAAGjUDBOMB0GA1UdDgQWBBQJ2dQYLeHpf+uQ3n0hWpE8\nHM5mfzAfBgNVHSMEGDAWgBQJ2dQYLeHpf+uQ3n0hWpE8HM5mfzAMBgNVHRMEBTAD\nAQH/MA0GCSqGSIb3DQEBCwUAA4GBAJndPgDbqKu5K1jv+ZCHSadWgxSAtmi64jE8\nXapNVUjLOI8nqZEyxIc5oF6+/CgXY8D/38yU1tb1eFNmav770Szv5skuWHVRajmZ\nBV61YQDN+RiJ2rRdoVxLNi6Amyf4IPaBZTO2SG4CsQd1LvhiYuTzB9hMpAWF9rax\n3AtqJd7e\n-----END CERTIFICATE-----'
};

http2.createServer(options, app).listen(3000);

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions