Как читать аудиопоток в узле js?

Я просто хочу прочитать какой-нибудь аудиопоток например с http://livestream.rfn.ru:8080/kulturafm/mp3_192kbps. Мой код такой

http = require('http')

options = 
  host: 'livestream.rfn.ru'
  path: ':8080/kulturafm/mp3_192kbps'

callback = (res) ->
  res.on 'data', (chunk) -> console.log String(chunk)
  res.on 'end', -> console.log('No more data in response.')

http.request(options, callback).end()

Выход:

‹html›‹head›‹title›Wowza Streaming Engine 4 Monthly Edition 4.4.0 build17748‹/title›‹/head›‹body›Wowza Streaming Engine 4 Monthly Edition 4.4.0 build17748‹/body›‹/html›

Больше нет данных в ответ. Я не могу понять, как получить данные из потока MP3.


person hagent    schedule 24.03.2016    source источник


Ответы (1)


Проблема здесь в том, что вы указываете порт (8080) в пути. Это неправильно. Вместо этого ваш HTTP-клиент подключается к порту 80 по умолчанию.

Вам не нужно указывать объект параметров таким образом. Просто передайте URL-адрес, и он проанализирует для вас. Используйте http.get(), и он установит для вас соответствующий глагол и .end().

var streamUrl = 'http://livestream.rfn.ru:8080/kulturafm/mp3_192kbps';
http.get(streamUrl, callback);
person Brad    schedule 25.03.2016
comment
О глупый я! Спасибо! Другой способ — добавить порт: 8080 в параметры и удалить его из пути. Я просто упустил из виду свойство порта в документации. - person hagent; 25.03.2016
comment
@hagent Да, это просто вариант port. https://nodejs.org/api/http.html#http_http_request_options_callback - person Brad; 25.03.2016