使用 node.js 监控 icecast
Posted
技术标签:
【中文标题】使用 node.js 监控 icecast【英文标题】:Monitor icecast using node.js 【发布时间】:2020-10-07 12:21:21 【问题描述】:我有一个相当模糊的问题,但我希望能得到一些帮助。
我在 unbuntu 服务器上安装了 icecast,使用 nginx 设置了两个服务器块。
Icecast 设置为在 https://stream.domain.com:8443/stream 上流式传输
我有一个在 https://app.domain.com 上运行的 node.js 应用程序
有没有办法使用节点“监听”icecast 域/流/端口,并在流启动时启动一个函数,并在流停止时停止它?
我不希望有一个完整的解决方案,只是为我指明正确方向的线索!提前谢谢你。
【问题讨论】:
您可以使用<on-connect>
和<on-disconnect>
标签在您的icecast 配置中进行设置
【参考方案1】:
提出请求
https://stream.domain.com:8443/status-json.xsl
它会返回一个服务器的 JSON 状态,然后查看这个 JSON 中的“source”键 - 不为空的“source”将表明有一个源连接到服务器并且 Icecast 正在广播一些东西。 该 JSON 还提供了许多您也可以使用的附加信息。
另外一个基本的检查是尝试连接到端口 8443 - 如果连接在 5 秒内没有发生 - 这将表明 Icecast 完全关闭。
【讨论】:
我知道 status-json.xsl,但问题是我的节点应用程序正在服务器上运行,并且当 icecast 流上线时它应该做一些事情。我无法手动请求状态 url。 为什么不按间隔请求 Icecast JSON,比如 5 秒?并在它在线时做出反应。以上是关于使用 node.js 监控 icecast的主要内容,如果未能解决你的问题,请参考以下文章
[译] Node.js的性能监控 - Part 1: 监控的指标
使用 StatsD + Grafana + InfluxDB 搭建 Node.js 监控系统
[转]使用 StatsD + Grafana + InfluxDB 搭建 Node.js 监控系统