基于公共服務器的家居通信系統及通信方法
【技術領域】
[0001]本發明屬于通信技術領域,具體地,涉及一種基于公共服務器的家居通信系統及通信方法
【背景技術】
[0002]人們的生活與信息的關系愈加緊密,智能化家居已開始走入人們的生活并得到越來越多的關注。智能家居讓用戶能夠用更方便的手段來管理家庭設備,幫助用戶在家庭外部也能與家庭內部保持流暢的信息通信,還能幫助人們進行高效的時間管理,并提高人們的生活質量。
[0003]智能家居系統中,手機客戶端將控制命令發送到家庭網關,家庭網關再通過家庭內部網絡控制智能家居。在家庭網關有公網IP或者家庭網關與手機端在同一局域網中時,可以順利地利用網絡進行通信。但是如果家庭網關沒有公網IP并且與手機端不在同一個局域網中,例如在有些小區和單位,是內部組成局域網后,再連接到公網,通常內部分配的是私有IP地址,外部是不可以通過私有IP訪問到家庭網關的,那么家庭網關不能直接與手機端進行通信。
[0004]要在這種情況下實現通信,有一種解決方案是利用NAT穿透技術,即網絡地址轉換技術,可以實現家庭網關與手機端的通信,但是這種方法并不十分穩定可靠。
【發明內容】
[0005]針對現有技術中存在的上述缺陷,本發明的目的是為智能家居系統提供一種基于公共服務器的家居通信系統及通信方法,通過公共服務器實現手機端與家庭網關的相互通信。家庭網關在沒有公網IP的情況下,可以利用公共服務器實現與手機端的相互通信。
[0006]為實現上述目的,本發明是通過以下技術方案實現的。
[0007]根據本發明的一個方面,提供了一種基于公共服務器的家居通信系統,包括公共服務器以及與公共服務器通信連接的至少一個家庭客戶端,所述公共服務器和家庭客戶端之間的通信是通過Socket通信協議來實現的;所述家庭客戶端包括手機端和家庭網關,所述手機端和家庭網關之間通過公共服務器轉發數據信息。
[0008]優選地,所述公共服務器與家庭客戶端之間通過如下方式唯一識別:每一個所述家庭客戶端均設置有唯一的序列號,所述公共服務器根據客戶端的序列號識別不同家庭客戶端,并根據唯一的序列號傳遞家庭數據信息。
[0009]優選地,所述家庭客戶端的手機端和家庭網關,均設有與其所屬家庭客戶端相同的序列號,即每戶家庭均有自己單獨的序列號;所述序列號設定為6位字符串,屬于同一家庭客戶端的手機端和家庭網關擁有同一個序列號,公共服務器根據序列號相同才能相互通信的原則,判斷能夠進行通訊的手機端和家庭網關。
[0010]優選地,所述公共服務器擁有公網IP,公共服務器用于所有家庭客戶端的手機端和家庭網關之間的數據通信以及處理所有家庭客戶端的用戶數據。
[0011]優選地,所述Socket通信協議采用客戶/服務器模式的通信模式,是基于IP地址和端口號的網絡通信;公共服務器作為Socket通信的服務器端,所有家庭客戶端的手機端和家庭網關都作為Socket通信的客戶端與公共服務器進行通信,通信時由客戶端向公共服務器發起連接請求,公共服務器收到請求后分別建立連接;服務器端和客戶端都是通過線程的方式來實現Socket通信的。
[0012]優選地,所述公共服務器設有Socket Serve程序,所述Socket Serve程序分別采用獨立的線程對各個家庭客戶端發來的Socket請求和反饋進行處理;每個所述家庭客戶端上線,公共服務器的Socket Serve程序都會新建一個線程用來接收和發送數據。
[0013]優選地,所述服務器Socket Serve程序在每個家庭客戶端上線時,首先記錄該家庭客戶端的手機端和家庭網關發來的序列號,從而判斷該家庭客戶端屬于哪戶家庭;若家庭客戶端的手機端和家庭網關沒有正確的匹配的序列號,則公共服務器拒絕傳遞該家庭客戶端的數據信息。
[0014]根據本發明的另一個方面,提供了一種基于公共服務器的家居通信系統的通信方法,包括如下步驟:
[0015]步驟1:家庭客戶端的手機端上線后,將序列號信息發送給公共服務器;
[0016]步驟2:公共服務器接收到序列號信息后,識別該手機端的家庭客戶端序列號,判斷該手機端屬于哪戶家庭;
[0017]步驟3:手機端將控制命令發送給公共服務器;
[0018]步驟4:公共服務器將控制命令轉發給擁有相同序列號的家庭客戶端的家庭網關;
[0019]步驟5:家庭網關接受控制命令并處理數據,將反饋信息發送給公共服務器;
[0020]步驟6:公共服務器識別該家庭網關的家庭客戶端序列號,將反饋信息發送給擁有相同序列號的手機端,同時作相應的存儲記錄。
[0021]與現有技術相比,本發明具有如下的有益效果:
[0022]—,本發明實現了家庭網關可以利用服務器端直接與手機端進行通信,家庭網關不一定需要擁有公網IP,更符合實際,更方便用戶家庭安裝使用智能家居,同時使用服務器通信更加穩定,也更可靠。
[0023]二,本發明提出的公共服務器通信模式將所有家庭戶集中在一起,通過服務器實現控制,每個家庭的智能家居系統不再是單獨的,便于實現統一管理。
[0024]三,本發明提出的識別不同家庭的方法,是服務器直接通過客戶端的序列號判斷該客戶端屬于哪個家庭,不需要判斷客戶端的IP或其他信息,這樣操作簡單,易于實現,也更方便,更具可靠性。
【附圖說明】
[0025]通過閱讀參照以下附圖對非限制性實施例所作的詳細描述,本發明的其它特征、目的和優點將會變得更明顯:
[0026]圖1為本發明基于公共服務器的家居通信系統的結構示意圖。
【具體實施方式】
[0027]下面對本發明的實施例作詳細說明:本實施例在以本發明技術方案為前提下進行實施,給出了詳細的實施方式和具體的操作過程。應當指出的是,對本領域的普通技術人員來說,在不脫離本發明構思的前提下,還可以做出若干變形和改進,這些都屬于本發明的保護范圍。
[0028]實施例
[0029]本實施例提供了一種基于公共服務器的家居通信系統,通過公共服務器實現家庭客戶端的手機端與家庭網關的相互通信。公共服務器可連接多個家庭客戶端,公共服務器和家庭客戶端之間的通信是通過Socket通信協議來實現的。手機端和家庭網關都作為家庭客戶端與公共服務器直接通信,通過公共服務器轉發數據信息。使用公共服務器通信更加穩定,也更可靠,且有效提高了實用性。公共服務器同時連接多戶家庭客戶端,因此公共服務器能夠有效識別不同家庭,分別傳遞數據。公共服務器可以根據家庭客戶端的序列號識別不同家庭,分家庭傳遞數據信息。
[0030]進一步地,公共服務器是指一臺擁有公網IP的服務器,公共服務器作為智能家居系統的數據信息中心和后臺管理中心,連接多戶家庭戶端,負責所有家庭的數據通信以及處理所有家庭的用戶數據。
[0031]進一步地,Socket通信是一種基于客戶/服務器模式的通信模式,公共服務器作為Socket通信的服務器端,所有家庭的手機端和家庭網關都作為Socket通信的客戶端與公共服務器通信,通信時由客戶端向公共服務器發起連接請求,公共服務器收到請求后建立連接。服務器端和客戶端都是通過線程的方式來實現Socket通信的。由于Socket是基于IP地址和端口號的網絡通信,當家庭網關沒有公網IP時,是不能直接與手機端通信的,但可以利用服務器實現與手機端的通信。
[0032]進一步地,同一家庭的手機端與家庭網關需要通過公共服務器實現相互通信。公共服務器可以根據序列號識別不同家庭,分家庭傳遞數據信息。
[0033]進一步地,每個家庭客戶端,包括手機端和家庭網關,都有與其所屬家庭客戶端相對應(相一致)的序列號,也即每戶家庭都有自己單獨的序列號。序列號為設定的6位字符串。屬于同一戶家庭客戶端的所有手機端和家庭網關擁有同一個序列號,只有序列號相同才能相互通信。公共服務器根據家庭客戶端序列號即可判斷其屬于哪戶家庭。
[0034]進一步地,公共服務器Socket Serve程序分別采用獨立的線程對各個家庭客戶端發來的Socket請求和反饋進行處理。每個家庭客戶端上線,公共服務器都會新建一個線程用來接收和發送數據,并首先記錄該家庭客戶端發來