2011-06-01 31 views
1

我試圖高效地實現使用HTTPServer類boost :: pion的類彗星功能。助推器彗星般的httpserver

基本上,在我的'handleURI'函數中,我想推遲返回結果給客戶端,直到服務器準備好響應爲止(例如,直到另一個用戶向第一個用戶發送消息,使用簡單的彗星'你好世界'應用程序)。

我該怎麼辦?將狀態放在堆棧上,然後靜默地退出,而不創建HTTPResponseWriter?

乾杯!

+0

嗯,是的 - 長輪詢是彗星技術之一 - 這就是爲什麼這個問題時帶上。 – qdot 2013-03-14 21:15:55

回答

2

爲您的連接設置一個超時ASIO事件,以便您可以在20分鐘後收穫連接或合理。我不知道Boost Pion,但在ASIO中,您希望註冊一個讀取處理程序,該處理程序在連接關閉時捕獲,並有一個超時處理程序在連接實際超時時提醒您。啓用TCP保持套接字檢測套接字是否應該在它剛剛消失時收到(儘管tcp保持活躍不是保證,因此不要完全依賴它們 - 並非所有客戶端都支持tcp保持活躍)。至於定時器,請查看以下定時器例如:

https://github.com/sean-/Boost.Examples/blob/master/asio/timer/timer.cc