ithewei / libhv

🔥 比libevent/libuv/asio更易用的网络库。A c/c++ network library for developing TCP/UDP/SSL/HTTP/WebSocket/MQTT client/server.
https://github.com/ithewei/libhv/wiki
BSD 3-Clause "New" or "Revised" License
6.73k stars 1.22k forks source link

HttpResponseWriterPtr无法响应http2请求 #320

Open oioitff opened 1 year ago

oioitff commented 1 year ago

测试代码如下:

int main() {
    hv::HttpService router;
    router.GET("/", [](const HttpRequestPtr& req, const HttpResponseWriterPtr& writer) {
        writer->Begin();
        writer->WriteStatus(HTTP_STATUS_OK);
        writer->WriteHeader("Content-Type", "text/html");
        writer->WriteBody("hello world");
        writer->End();
    });

    hssl_ctx_init_param_t param;
    memset(&param, 0, sizeof(param));
    param.crt_file = "cert.crt";
    param.key_file = "key.pem";
    param.endpoint = HSSL_SERVER;
    if (hssl_ctx_init(&param) == NULL) {
        printf("hssl_ctx_init failed!\n");
        return -1;
    }

    hv::HttpServer server;
    server.registerHttpService(&router);
    server.setPort(0, 443);
    server.run();
    return 0;
}

用同步http_sync_handler是可以正常响应http2请求的,但是无论是用http_async_handler还是http_ctx_handler,都无法正常响应http2请求

ithewei commented 1 year ago

HttpResponseWriter确实没考虑http2协议,所以目前不支持http2的异步响应。

cxyxiaoli commented 1 year ago

您好,请教一下,有libhv使用http2 server的使用example吗? 回调时是否支持不同的steam_id?