2013-01-08 6 views
1

안녕하세요 저는 Linux alsa를 지속적으로 읽고 STDOUT에서 데시벨 레벨 번호를 출력하는 C로 데시벨 레벨 미터를 작성했습니다.C 오디오 데시벨 레벨을 스트리밍하는 HTTP 스트리밍 서버

이제 HTTP 및 스트리밍 라이브 데이터를 적절한 js + html 장식으로 클라이언트에 스트리밍하고 그래프 및 바늘과 함께 잡음 측정기로 작동하고 싶습니다.

따라서 나는 실시간으로 여러 클라이언트를 서버 할 수있는 HTTP 스트리밍 서버에 방향을 지정할 수 있는지를 알고 싶습니다.

+0

프로그램에 간단한 소켓 서버를 통합하여 연결을 허용하고 연결된 클라이언트에 번호 (문자열)를 스트리밍 할 수 있습니다. 그런 다음이 서버에 연결하고 데이터를 읽으려는 모든 webapp-framework (PHP, Python 또는 기타 항목)을 사용하십시오. 또는 파일에 값을 쓰고 웹 응용 프로그램이 정기적으로이 파일을 읽도록하십시오. –

+0

정보를 주셔서 감사 드리며, 지연을 최소화하기 위해 1 파일 솔루션이 될 수 있기를 바랍니다. 그리고 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 서버 기능을 제공합니다. libonion 또는 libmicrohttpd. 다른 라이브러리는 HTTP 클라이언트 기능을 제공합니다. 모든 이벤트 루프를 사용하고 있습니다. 예 : libev, libevent 또는 적어도 일부 멀티플렉싱 시스템 호출 poll(2)

응용 프로그램을 FASTCGI 응용 프로그램으로 만들 수도 있습니다.

Advanced Linux Programming을 읽는 것이 도움이됩니다.