我正在研究如何实现允许tunneling data over HTTP的CONNECT HTTP方法的可能性。但是,我找不到如何在一个Snap请求中实现双向处理的方法。我找到的最接近的是transformRequestBody
transformRequestBodySource :: (forall a. Enumerator Builder IO a) -> Snap ()
但这只会将请求输入转换为响应输出,而我需要同时处理输入和输出以将数据中继到请求的目标资源。
答案 0 :(得分:2)
我相信这是通过escapeHttp。我通过查看the source for websockets-snap来发现这一点,这可能是升级连接的正确方法。
作为参考,在WAI世界中,这是通过responseRaw
函数处理的。