Overriding Node.js HTTP parser

Estoy usando la @ básica de Nohttp.request() funciona sin problemas en servidores HTTP normales. Necesito usarhttp.request() (o similar) con los servidores SHOUTcast. El "protocolo" SHOUTcast es totalmente compatible con HTTP, excepto por un detalle ... la primera línea de respuesta.

os servidores HTTP normales responden con:

HTTP/1.1 200 OK

os servidores de @SHOUTcast responden con:

ICY 200 OK

De nuevo, el resto del protocolo es el mismo. La única diferencia esHTTP/1.x vs.ICY.

Me gustaría extender, subclasificar o modificar de alguna manera Node'shttp.request() función para que pueda hacer que funcione con los servidores SHOUTcast. Conectando a SHOUTcast con Node se ha hecho antes de, pero solo reinventando toda la rueda. Prefiero no hacer eso por lo que equivale a una pequeña diferencia de protocolo.

Mi pregunta: ¿Hay alguna forma de hacer una de las siguientes cosas?

Extender o anular las partes relevantes del analizador HTTP de Node. (Dudo que esto sea posible, ya que pareceel analizador es código nativo.)

Crear mi propia bit de código que analiza las partes relevantes de HTTP, pero reutiliza tantos componentes de Nodo existentes para HTTP como sea posible.

Cree un proxy interno simple (o de alguna manera transmitir datos) para que pueda modificar esa primera línea de respuesta del servidor antes de que llegue al analizador HTTP de Node.

¿Algo más

También he considerado usarDesgarra, pero no ofrece una opción para transmitir la respuesta. (Espera a que se complete la respuesta completa del servidor antes de disparar un evento, que no funcionará para los servidores de transmisión donde los datos pueden ejecutarse indefinidamente). En esa misma línea, probéSolicitu, pero utiliza el propio analizador HTTP de Node, por lo que obtengo los mismos errores de análisis que con el cliente HTTP nativo.

Respuestas a la pregunta(4)

Su respuesta a la pregunta