3.Создайте простой внутренний прокси
Bang. Вы получили его.
Используйте Node.js net
объект для созданияTCP-сервер, который фактически находится между пользователем и http-сервером.Замените первую строку всех запросов и ответов, как вы описали, и вы можете продолжать использовать http-сервер практически как есть.(Вы создаете внутренний http-сервер на нестандартном порту, сетевой сервер на другом порту, а затем объединяете потоки между ними с небольшим количеством кода для перехвата первой порции данных запрашивающего пользователя и первой порцииданных с отвечающего сервера.)
Весь ваш код в Javascript, и он весь потоковый (почти) без буфера обмена.
РЕДАКТИРОВАТЬ, кажется, я немного неправильно прочитал ваш пост.Я вижу, что вы не пытаетесь реализовать сервер shoutcast для Node.js, а пытаетесь получить доступ к данным с него.Объект net
должен все еще работать, но не совсем так.
Вам нужно будет использовать net.connect
для связи с указанным сервером shoutcast и использовать новый сервер net
, который знаето потоке net.connect
на прокси между ним и вашим http.request()
.Итак, это будет работать примерно так:
+---------------+ +----------+ +-----------+ +----------------+
| http.request()|--->|net.Server|--->|net.connect|--->|SHOUTcast Server|
| |<---| |<---| |<---| |
+---------------+ +----------+ +-----------+ +----------------+
TCP JS TCP
Вот как я бы это структурировал.