2012-04-10 1 views
1

Poco C++ lib의 WebSocket 클래스를 사용하여 내 서버 응용 프로그램에 깨끗한 인터페이스를 구축하려고합니다.Poco C++ Websocket Server - 60 초 후에 닫으십시오.

내 문제는 예를 들어, 웹 소켓 서버 응용 프로그램을 사용하여 소켓 60 초 후에 클라이언트에 닫혀 있는지 - 그리고 나는 그것이

내가 설정 시도 (+ 15 분 ... 생각) 더 이상 지속 할 필요가 HTTP 계층의 시간 초과가 10 분 (3600 초)으로 바뀌고 이는 동작에 아무런 영향을 미치지 않습니다.

불행히도 Poco 예제와 문서는 약간 얇기 때문에 여기 누군가가 도와 줄 수 있기를 바랍니다.

+0

클라이언트에 보낼 핑 기능이 있다면? WebSockets 프로토콜에는 PING 및 PONG OpCodes가 있습니다. 라이브러리가 사용하지 않으면 클라이언트 연결이 끊어 질 수 있습니다. – moka

+0

나는 이것이 사실일지도 모른다라고 생각했다 - 어느 쪽의 경우 나는 그 행동을 막을 길을 발견 할 필요가있다. 모바일 클라이언트에 WebSocket을 사용할 계획이며 배터리 수명을 절약하기 위해 트래픽을 최소로 제한하려고합니다. – justacodemonkey

+0

또한 Poco의 WebSocket에 대해 setKeepAlive 함수를 확인하십시오. 그리고 질문 : 브라우저를 사용하여 서버에 연결하거나 Poco 클라이언트 WebSocket을 사용하여 다른 Poco 응용 프로그램에 연결하고 있습니까? 설명서뿐만 아니라 Ping 및 Pong도 응용 프로그램 개발자가 처리해야합니다. 따라서 라이브러리 자체에서는 처리되지 않습니다. – moka

답변

0

연결이 닫히는 이유는 웹 소켓이 스택에 handler으로 생성 되었기 때문입니다. 핸들러는 모든 요청에 ​​대해 호출되며 수명이 짧습니다. 마지막으로 더 오래 사용하려면 힙에 생성하고 팩토리 (또는 다른 수명이 긴 다른 객체)에 대한 참조를 유지해야하므로 HTTP 요청을 처리 한 후에도 활성 상태를 유지합니다.