I'd like to develop a server that maintains a TCP connection to an
upstream server, and listens for HTTP requests. Upon receiving an HTTP
request, the server will send a message upstream, wait for a response,
and return an HTTP response to the client which made the request.
My background is in writing blocking web services, so my natural
instinct is to write a `get_result_for(query)` method that will take a
`query` string and return a result from the upstream TCP connection.
I'm not sure whether writing such a method is possible in Twisted,
since it's basically a blocking method. I suspect I may have to use
Continuation-Passing Style instead, that is: provide a callback to
`get_result_for(query, callback)`.
Even if that's the case, how do I return an HTTP response to the HTTP
client once the query result is available?