2012-04-10 68 views
1

我正嘗試使用Poco C++ lib的WebSocket類在我的服務器應用程序中構建一個漂亮的乾淨接口。Poco C++ Websocket服務器 - 阻止它在60秒後關閉

我的問題是,使用例如WebSocket的服務器應用中,插座60秒後關閉到客戶端 - 我需要它持續更長的時間(想想+ 15分鐘......)

我已經嘗試設置HTTP層的超時時間爲10分鐘(3600秒),這對行爲沒有影響。

不幸的是,Poco的例子和文檔有點薄 - 所以我希望這裏有人能夠提供幫助。

+0

如果有任何Ping功能發送給客戶端? WebSockets協議它自己有PING和PONG OpCodes。圖書館可能會在不活動之後斷開客戶端連接。 – moka 2012-04-10 14:22:05

+0

我確實認爲這可能是這種情況 - 在這種情況下,我需要找到一種方法來防止這種行爲。 我打算將WebSocket用於移動客戶端 - 我想將流量限制在最低限度以節省電池壽命。 – justacodemonkey 2012-04-10 14:30:55

+0

以及在Poco中爲WebSocket檢查函數setKeepAlive。 問題:您是使用瀏覽器連接服務器,還是使用Poco客戶端WebSocket連接另一個Poco應用程序? 基於文檔,Ping和Pong必須由應用程序開發人員處理。所以它不是由圖書館自己處理的。 – moka 2012-04-10 14:31:13

回答

0

連接關閉的原因是因爲WebSocket是在handler的堆棧上創建的。處理程序被稱爲每個請求,並且是短暫的。爲了讓它持續更長時間,您應該在堆上創建它並在工廠(或其他一些長壽命對象)中保持引用,以便在處理HTTP請求後保持活動狀態。

相關問題