Skip to content

Support for http2 #78

Closed
Closed

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);

Activity

  1. dougwilson commented on Apr 4, 2016

    @dougwilson
    Contributor

    Just vote to get the PR molnarg/node-http2#189 accepted. It doesn't work because one of the functions for compatibility with Node.js core HTTP was not spelled correctly in http2.

  2. self-assigned this
    on Apr 4, 2016
  3. sandysaders commented on Jul 21, 2016

    @sandysaders

    @dougwilson Is this still a problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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