2013-01-08 138 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應該有所幫助。