Overriding Node.js analisador HTTP
Estou usando o @ básico do Nohttp.request()
funciona sem problemas em servidores HTTP normais. Eu preciso usarhttp.request()
(ou similar) com servidores SHOUTcast. O "protocolo" do SHOUTcast é totalmente compatível com HTTP, exceto por um detalhe ... a primeira linha de resposta.
s servidores HTTP normais respondem com:
HTTP/1.1 200 OK
s servidores @SHOUTcast respondem com:
ICY 200 OK
Novamente, o restante do protocolo é o mesmo. A única diferença éHTTP/1.x
vs.ICY
.
Gostaria de estender, subclasse ou de alguma forma modificarhttp.request()
para que eu possa fazê-lo funcionar com os servidores SHOUTcast. Conectando ao SHOUTcast com o Nó foi feito antes de, mas apenas reinventando a roda inteira. Prefiro não fazer isso pelo que representa uma pequena diferença de protocolo.
Extender ou substituir as partes relevantes do analisador HTTP do Nó. (Eu duvido que isso seja possível, como pareceo analisador é o código nativo.)
Criar meu próprio bit de código que analisa as partes relevantes do HTTP, mas reutiliza o maior número possível de componentes do Node existente
Crie um proxy interno simples (ou de alguma forma retransmitir dados) para que eu possa modificar a primeira linha de resposta do servidor antes de atingir o analisador HTTP do N
Algo mais
Eu também considerei usarDestrui, mas não oferece uma opção para transmitir a resposta. (Espera que toda a resposta do servidor seja concluída antes de disparar um evento, o que não funcionará para servidores de streaming em que os dados possam ser executados indefinidamente.) Nessa mesma linha, tenteiSolicitaçã, mas ele usa o analisador HTTP do próprio nó, para que eu receba os mesmos erros de análise que receberia com o cliente HTTP nativ