Um ein Protokoll (Icecast Source Protocol) basierend auf HTTP zu unterstützen, muss ich in der Lage sein, einen Socket von Node.js http.Server zu verwenden, sobald die HTTP-Anfrage ist fertig. Eine Probe Anfrage sieht wie folgt aus:Keep Socket nach HTTP-Anfrage/Antwort auf Node.js Server
Client->Server: GET/HTTP/1.0
Client->Server: Some-Headers:header_value
Client->Server:
Server->Client: HTTP/1.0 200 OK
Server->Client:
Client->Server: <insert stream of binary data here>
Dies ist die Quelle eines Internet-Radio-Stream, um die Quelle der Stromdaten ist der Kunde in diesem Fall zu unterstützen.
Gibt es eine Möglichkeit, den integrierten http.Server von Node.js zu verwenden? Ich habe dies versucht:
this.server = http.createServer(function (req, res) {
console.log('connection!');
res.writeHead(200, {test: 'woot!'});
res.write('test');
res.write('test2');
req.connection.on('data', function (data) {
console.log(data);
});
}).listen(1337, '127.0.0.1');
Wenn ich in Port 1337 Telnet und eine Anfrage machen, ich bin in der Lage, die ersten paar Zeichen zu sehen, was ich auf dem Server-Konsole-Fenster eingeben, aber dann schließt der Server die Verbindung. Im Idealfall würde ich diesen Socket unbegrenzt offen halten und den HTTP-Teil nach der ersten Anfrage aus der Schleife nehmen.
Ist dies mit der Aktie http.Server Klasse möglich?