'Forward a https/wss request to http/ws

I have a nextjs webapp with serverless functions that run behind ssl certificates, I want to treat the nextjs webapp as an interface to a hasura graphql query and subscription API that is not running with ssl.

I figure nextjs serverless functions would be a good way to go, I have already used it to forward requests like so: http.get('http://yoururl.com', response => response.pipe(res)).

However I can't work out a way to do this for post/subscriptions, there's a http.request function but that doesn't support body params and I'm even less sure about forwarding websocket connections.

I tried to just forward the request as a fetch but had issues with the header mismatching:

export default async (req: NextApiRequest, res: NextApiResponse) => {    
    return fetch({
        method: 'POST',
        url: 'http://myurl.com/v1/graphql',
        headers: req.headers,
        body: req.body
    })
}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source