一種接收通知消息的處理方法及裝置的制造方法
【技術領域】
[0001]本發(fā)明涉及計算機網絡技術領域,尤其涉及一種接收通知消息的處理方法及裝置。
【背景技術】
[0002]當提供者應用程序Provider APP的屬性Property變化的頻率比較高,而且該Property對應的發(fā)送通知消息的標識org.freedesktop.DBus.Property.EmitsChangedSignal的標注值設定為true或者invalidates時,需要生成對應的org.freedesktop.DBus.Properties.PropertiesChanged 信號時,訂閱該信號的消費者應用程序Consumer APP可能需要相同頻率解析上述信號,出現(xiàn)的問題是,Consumer APP所在的移動設備正在解析一個信號時,又要接收下一個信號,并且要開始下一個信號的解析,如果堆積,嚴重地消耗了 Client APP所在設備的資源,造成移動設備的過載、宕機甚至失控等問題。因此,需要一種接收通知消息的處理方法,以解決現(xiàn)有技術中存在的上述技術問題。
【發(fā)明內容】
[0003]本發(fā)明提供一種接收通知消息的處理方法及裝置,提高了客戶端應用程序Consumer APP所在移動設備運行的穩(wěn)定性。
[0004]本發(fā)明采用的技術方案是:
[0005]—種接收通知消息的處理方法,其在提供端執(zhí)行的流程包括:在一個檢測周期內發(fā)送變化通知消息至客戶端,其中所述變化通知消息攜帶有所述變化通知消息的時序信息,以使所述客戶端基于所述時序信息和接收所述變化通知消息的接收頻率判斷是否接收所述變化通知消息。
[0006]優(yōu)選地,當提供端應用程序的屬性發(fā)生變化時,啟動所述檢測周期。
[0007]優(yōu)選地,提供端應用程序啟動檢測周期,發(fā)送變化通知消息,經由提供端路由器發(fā)送至客戶端的路由器;或者,提供端路由器啟動檢測周期,發(fā)送所述變化通知消息至客戶端的路由器。
[0008]本發(fā)明還提供了一種接收通知消息的處理方法,其在客戶端執(zhí)行的流程包括:在一個檢測周期內,接收所述提供端發(fā)來的變化通知消息,其中所述變化通知消息攜帶有所述變化通知消息的時序信息;基于所述時序信息和接收所述變化通知消息的接收頻率,判斷是否接收所述變化通知消息。
[0009]優(yōu)選地,所述時序信息包括所述變化通知消息在所述檢測周期內的序號和所述檢測周期的周期時間;在基于所述時序信息和接收所述變化通知消息的接收頻率,判斷是否接收所述變化通知消息中:判斷所述序號是否超出所述周期時間與所述接收頻率的乘積;若是,則放棄所述變化通知消息;若否,則接收所述變化通知消息。
[0010]優(yōu)選地,根據設置于所述客戶端的移動設備的設備參數(shù)確定所述接收頻率。
[0011]本發(fā)明還提供了一種接收通知消息的處理裝置,其設置于提供端,所述裝置包括消息發(fā)送模塊,用于:在一個檢測周期內發(fā)送變化通知消息至客戶端,其中所述變化通知消息攜帶有所述變化通知消息的時序信息,以使所述客戶端基于所述時序信息和接收所述變化通知消息的接收頻率判斷是否接收所述變化通知消息。
[0012]本發(fā)明還提供了一種接收通知消息的處理裝置,其設置于客戶端,所述裝置包括:接收模塊,用于在一個檢測周期內接收所述提供端發(fā)來的變化通知消息,其中所述變化通知消息攜帶有所述變化通知消息的時序信息;判斷模塊,用于基于所述時序信息和接收所述變化通知消息的接收頻率,判斷是否接收所述變化通知消息。
[0013]優(yōu)選地,所述時序信息包括所述變化通知消息在該檢測周期內的序號和該檢測周期的周期時間,所述判斷模塊還用于:判斷所述序號是否超出所述周期時間與所述接收頻率的乘積;若是,則放棄所述變化通知消息,并且發(fā)送放棄所述變化通知消息的信號至所述提供端,以觸發(fā)所述提供端結束所述檢測周期;若否,則接收所述變化通知消息。
[0014]優(yōu)選地,所述處理裝置還包括接收頻率確定模塊,用于:根據設置于所述客戶端的移動設備的設備參數(shù)確定所述接收頻率。
[0015]采用上述技術方案,本發(fā)明至少具有下列效果:
[0016]采用本發(fā)明的接收通知消息的處理方法可以有效地降低提供端應用程序Provider APP以高頻率地發(fā)送變化通知消息,造成客戶端應用程序Consumer APP處理大量數(shù)據所出現(xiàn)的過載現(xiàn)象。
【附圖說明】
[0017]圖1為本發(fā)明第一實施例的接收通知消息的處理方法的流程圖;
[0018]圖2為本發(fā)明第二實施例的接收通知消息的處理方法的流程圖;
[0019]圖3為本發(fā)明第二實施例的接收通知消息的處理方法的流程圖;
[0020]圖4為本發(fā)明第三實施例的接收通知消息的處理方法的流程圖;
[0021]圖5為本發(fā)明的第四實施例的接收通知消息的處理方法的示意圖。
[0022]圖6為本發(fā)明第五實施例和第六實施例的接收通知消息的處理裝置的方框圖。
【具體實施方式】
[0023]為更進一步闡述本發(fā)明為達成預定目的所采取的技術手段及功效,以下結合附圖及較佳實施例,對本發(fā)明進行詳細說明如后。
[0024]本發(fā)明提供的接收通知消息的處理方法可以提供客戶端應用程序所在移動設備穩(wěn)定運行。下面將詳細地描述本發(fā)明的接收通知消息的處理方法及其各個步驟。
[0025]第一實施例
[0026]如圖1所示,本實施例中的接收通知消息的處理方法在提供端執(zhí)行的流程包括:步驟SlO:在一個檢測周期內發(fā)送變化通知消息至客戶端,其中變化通知消息攜帶有變化通知消息的時序信息,以使客戶端基于時序信息和接收變化通知消息的接收頻率判斷是否接收該變化通知消息。優(yōu)選地,當提供端應用程序Provider APP的屬性Property發(fā)生變化時,啟動所述檢測周期。Provider APP啟動監(jiān)測功能,當監(jiān)測到Property變化時,發(fā)送變化通知消息,該變化通知消息中攜帶有該變化通知消息的時序信息。由此實現(xiàn)了由提供端實現(xiàn)監(jiān)測功能,并且通過時序信息和接收頻率來判斷是否接收該變化通知消息,以此提供端根據客戶端是否接收該變化通知消息來決定檢測周期是否需要結束,還是繼續(xù)在該檢測周期內進行監(jiān)測。
[0027]根據org.freedesktop.DBus.Property.EmitsChangedSignal 的標注值 Property可以分為三種信號處理的情況:
[0028]當標注值為True 時:Property 發(fā)生變化時,----updateing Property org.freedesktop.DBus.Properties.PropertiesChanged 消息攜帶 Property 的新值被發(fā)送。
[0029]當標注值為False:Property發(fā)生變化時,不會發(fā)送----non-cacheable
property org.freedesktop.DBus.Properties.PropertiesChanged 消息。
[0030]當標注值為invalidates:Property 發(fā)生變化時,----1nvalidating property
org.freedesktop.DBus.Properties.PropertiesChanged 消息發(fā)送,不攜帶 Property 的新值。
[0031]上述消息都是以時域sess1n內的廣播形式發(fā)送,同一個sess1n內的應用程序App都可能接收到上述消息。那么客戶端應用程序采用以下方式選擇接收上述消息:通過addmatch方法向客戶端路由器router注冊一個過濾條件。當客戶端路由器:router接收到上述Property變化的變化通知消息后,會根據上述過濾條件,判定是否需要為客戶端應用程序APP發(fā)送上述變化通知消息。下面是變化通知信號的類型。
[0032]org.freedesktop.DBus.AddMatch (bus_proxy, 〃type = ' signal' , name = ' org.example.App’ , path_namespace = ’/org/exampIe/App'");
[0033]其中addmatch的參數(shù)包括如下:type (消息類型);sender (Bus名或者連接唯一名);interface (接口名)!member (方法名或者信號名稱);path (對象路徑)