2013-01-08 140 views
1

您好我已经写在C分贝水平仪不断读取Linux ALSA和输出STDOUT分贝级别的数字。C HTTP流媒体服务器流音频分贝水平

现在我想通过HTTP和流式传输实时数据给客户端,通过适当的js + html装饰,它的行为就像噪音计,带有图形和针。

因此,我想知道是否有人能指出我的方向将它们集成到HTTP流媒体服务器中,可以实时服务于多个客户端。

+0

您可以在程序中集成一个简单的套接字服务器,该套接字服务器接受连接并简单地将数字(字符串)流式传输到连接的客户端。然后使用任何你想连接到这个服务器并读出数据的webapp-framework(无论是PHP,Python或其他)。或者将值写入文件,并让webapp定期读取此文件。 –

+0

嗨,感谢您的信息,我希望可以将1个文件解决方案尽量减少延迟。而我没有太多的插座编程在C中的exp。我的C编码做分贝是在这里:https://raw.github.com/c2h2/csounds-stuff/master/dB_meter_bar.c – c2h2

+0

我不是专家,但你应该能够使用CGI将它集成到像nginx这样的标准网络服务器中。但是,由于JavaScript的工作方式,在HTTP请求完成之前,您将无法看到数据。您需要平衡轮询频率与产生的延迟。 (TL; DR:没有使用AJAX进行HTTP流式传输的东西。) – Potatoswatter

回答

1

您可以使用多个C库。一些C库提供HTTP服务器功能,例如libonionlibmicrohttpd。其他库提供HTTP客户端功能,例如libcurl

所有正在使用的事件循环,例如, libev,libevent或至少一些多路复用系统调用像poll(2)

你也可以让你的应用程序一个FASTCGI应用程序。

阅读Advanced Linux Programming应该有所帮助。