一種清除失效連接的方法及裝置的製作方法
2023-05-28 00:55:26
專利名稱:一種清除失效連接的方法及裝置的製作方法
技術領域:
本發明屬於即時通信領域,尤其涉及一種清除失效連接的方法及裝置。
背景技術:
隨著信息社會的飛速發展,各種各樣的通信工具如飛信、QQ等被人們普遍使用,除了個人應用以外,一些企業版的即時通信方式也逐漸為大眾所熟悉,譬如視頻會議等。在日常應用中,企業即時通信工具主要採用TCP連接方式,這種連接穩定性很強。當用戶長時間不用,甚至客戶端網絡斷線時,連接卻仍然存在。因此,即時通信伺服器中積存大量的無效連接,無故佔用了系統的內存,如果不及時清除,容易造成通信系統故障。此外,如果客戶端一段時間內不活動,僅由伺服器一方判斷是否清除連接,容易造成客戶端與伺服器連接的突然斷開,造成不良的用戶感受。
發明內容
本發明提供一種清除失效連接的方法及裝置以解決上述問題。本發明提供一種清除失效連接的方法,包括以下步驟。伺服器接收客戶端發送的消息,並將所述客戶端對應的連接放入活動隊列。所述伺服器定時掃描並獲取所述活動隊列中的連接的空閒時間,並比較連接的空閒時間與第一預設值,若所述連接的空閒時間大於所述第一預設值,將所述連接放入超時隊列。所述伺服器定時向所述超時隊列中的連接對應的客戶端發送策略消息,若客戶端在預設時間內返回策略消息,則所述伺服器將所述客戶端對應的連接放入活動隊列,若客戶端未在預設時間內返回策略消息,則所述伺服器判斷所述客戶端對應的連接的空閒時間是否大於第二預設值,若所述連接的空閒時間大於所述第二預設值,則所述伺服器斷開所述連接並從所述超時隊列中移除所述連接。本發明提供一種清除失效連接的裝置,包括接收模塊、第一處理模塊、第二處理模塊,所述接收模塊連接所述第一處理模塊,所述第一處理模塊連接所述第二處理模塊。所述接收模塊,用於接收客戶端發送的消息,並將所述客戶端對應的連接放入活動隊列。所述第一處理模塊,用於定時掃描並獲取所述活動隊列中的連接的空閒時間,並比較連接的空閒時間與第一預設值,若所述連接的空閒時間大於所述第一預設值,將所述連接放入超時隊列。所述第二處理模塊,用於定時向所述超時隊列中的連接對應的客戶端發送策略消息, 若客戶端在預設時間內返回策略消息,則所述伺服器將所述客戶端對應的連接放入活動隊列,若客戶端未在預設時間內返回策略消息,則所述伺服器判斷所述客戶端對應的連接的空閒時間是否大於第二預設值,若所述連接的空閒時間大於所述第二預設值,則所述伺服器斷開所述連接並從所述超時隊列中移除所述連接。相較於先前技木,根據本發明提供的清除失效連接的方法及裝置,伺服器接收客戶端發送的消息,並定時獲取所述活動隊列中的連接的空閒時間。根據空閒時間與第一預設值的比較結果,判斷是否將所述連接放入超時隊列。如此避免了忽然斷開客戶端連接。另外,伺服器定時向超時隊列中的連接對應的客戶端發送策略消息,若客戶端不返回所述策略消息,再根據連接的空閒時間與第二預設值,判斷是否斷開所述超時隊列中的連接。以上對客戶端失效連接的多級判斷方式,一方面清除了伺服器中的無效連接,減輕了系統負擔。 另ー方面伺服器通過主動向客戶端發送策略消息確認無效連接,提高了用戶體驗度。
此處所說明的附圖用來提供對本發明的進ー步理解,構成本申請的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中圖1所示為根據本發明的較佳實施例提供的清除失效連接的方法的流程圖;圖2所示為根據本發明的較佳實施例提供的清除失效連接的裝置的示意圖。
具體實施例方式下文中將參考附圖並結合實施例來詳細說明本發明。需要說明的是,在不衝突的情況下,本申請中的實施例及實施例中的特徵可以相互組合。圖1所示為根據本發明的較佳實施例提供的清除失效連接的方法的流程圖。如圖 1所示,本發明的較佳實施例提供的清除失效連接的方法包括步驟101 103。步驟101 伺服器接收客戶端發送的消息,並將所述客戶端對應的連接放入活動隊列。具體而言,當客戶端連接伺服器吋,伺服器創建ー個與所述客戶端對應的連接,此時,連接的最近使用時間即連接的創建時間,當連接接收或發送消息時,則修改連接的最近使用時間為接收或發送消息的時間。連接的空閒時間為伺服器當前操作時間與連接的最近使用時間之差,所述伺服器的活動隊列用於存放空閒時間小於或等於第一預設值的連接。客戶端向伺服器發送消息,伺服器接收到客戶端發送的消息後,修改客戶端對應的連接的最近使用時間為接收消息的時間,並且判斷所述客戶端對應的連接是否在超時隊列中,若所述連接在超時隊列中,則從超時隊列中移除客戶端對應的連接,並將所述連接放入活動隊列中。在本發明的其它實施例中,客戶端向伺服器發送消息的方式可以為定時或不定吋,然而,對此本發明並不作限定。步驟102 所述伺服器定時掃描並獲取所述活動隊列中的連接的空閒時間,並比較連接的空閒時間與第一預設值,若所述連接的空閒時間大於所述第一預設值,將所述連接放入超時隊列。具體而言,伺服器掃描所述活動隊列中的連接後,獲取連接的空閒時間。其中,空閒時間為伺服器掃描活動隊列中連接的操作時間與連接的最近操作時間之差。接下來,伺服器根據連接的空閒時間與第一預設值的比較結果,決定將連接保持在活動隊列還是放入超時隊列中。即,空閒時間小於或等於第一預設值的連接,保持在活動隊列,空閒時間大於第一預設值的連接,從活動隊列中移出,放入超時隊列中。例如,伺服器每隔60秒掃描一次活動隊列,在2011/12/19 14:53:25這ー時刻,伺服器掃描活動隊列中各連接最近使用時間並獲取所述活動隊列中的連接的空閒時間,如下表所示。
權利要求
1.一種清除失效連接的方法,其特徵在幹,包括以下步驟伺服器接收客戶端發送的消息,並將所述客戶端對應的連接放入活動隊列;所述伺服器定時掃描並獲取所述活動隊列中的連接的空閒時間,並比較連接的空閒時間與第一預設值,若所述連接的空閒時間大於所述第一預設值,將所述連接放入超時隊列;所述伺服器定時向所述超時隊列中的連接對應的客戶端發送策略消息,若客戶端在預設時間內返回策略消息,則所述伺服器將所述客戶端對應的連接放入活動隊列,若客戶端未在預設時間內返回策略消息,則所述伺服器判斷所述客戶端對應的連接的空閒時間是否大於第二預設值,若所述連接的空閒時間大於所述第二預設值,則所述伺服器斷開所述連接並從所述超時隊列中移除所述連接。
2.根據權利要求1所述的方法,其特徵在幹,若所述連接的空閒時間小於或等於所述第一預設值,保持所述連接於所述活動隊列,並等待所述伺服器的下一次定時掃描。
3.根據權利要求1所述的方法,其特徵在幹,若所述連接的空閒時間小於或等於所述第二預設值,保持所述連接於所述超時隊列,並等待所述伺服器下一次向所述連接對應的客戶端發送策略消息。
4.根據權利要求1、2或3所述的方法,其特徵在幹,所述連接的所述空閒時間為所述伺服器當前操作時間與所述連接的最近使用時間之差。
5.根據權利要求1所述的方法,其特徵在幹,所述伺服器接收客戶端發送的消息後,判斷所述客戶端對應的連接是否在超時隊列中,若所述連接在超時隊列中,則從所述超時隊列中移除所述連接,並將所述連接放入活動隊列中。
6.一種清除失效連接的裝置,其特徵在幹,包括接收模塊、第一處理模塊、第二處理模塊,所述接收模塊連接所述第一處理模塊,所述第一處理模塊連接所述第二處理模塊,所述接收模塊,用於接收客戶端發送的消息,並將所述客戶端對應的連接放入活動隊列;所述第一處理模塊,用於定時掃描並獲取所述活動隊列中的連接的空閒時間,並比較連接的空閒時間與第一預設值,若所述連接的空閒時間大於所述第一預設值,將所述連接放入超時隊列;所述第二處理模塊,用於定時向所述超時隊列中的連接對應的客戶端發送策略消息, 若客戶端在預設時間內返回策略消息,則所述伺服器將所述客戶端對應的連接放入活動隊列,若客戶端未在預設時間內返回策略消息,則所述伺服器判斷所述客戶端對應的連接的空閒時間是否大於第二預設值,若所述連接的空閒時間大於所述第二預設值,則所述伺服器斷開所述連接並從所述超時隊列中移除所述連接。
全文摘要
本發明提供一種清除失效連接的方法及裝置,本發明方法包括以下步驟。伺服器接收客戶端發送的消息,並將所述客戶端對應的連接放入活動隊列。伺服器定時掃描並獲取活動隊列中的連接的空閒時間,並比較連接的空閒時間與第一預設值,若連接的空閒時間大於第一預設值,將所述連接放入超時隊列。伺服器定時向超時隊列中的連接對應的客戶端發送策略消息,若客戶端在預設時間內返回策略消息,則伺服器將所述客戶端對應的連接放入活動隊列,若客戶端未在預設時間內返回策略消息,則所述伺服器判斷所述客戶端對應的連接的空閒時間是否大於第二預設值,若所述連接的空閒時間大於所述第二預設值,則所述伺服器斷開所述連接並從所述超時隊列中移除所述連接。
文檔編號H04L29/06GK102546465SQ20111043553
公開日2012年7月4日 申請日期2011年12月22日 優先權日2011年12月22日
發明者胡加明 申請人:蘇州闊地網絡科技有限公司