一種基於NodeJS的M2M通信設備及方法與流程
2023-07-06 22:26:31

本發明涉及增強機器設備通信和網絡(machine-to-machine/man,m2m)技術領域,特別涉及一種基於nodejs的m2m通信設備及方法。
背景技術:
m2m業務是一種以機器終端設備智能交互為核心的、網絡化的應用與服務。它通過在機器內部嵌入通信模塊,通過各種承載方式將機器接入網絡。
目前在m2m業務中,硬體設備之間的通信是通過can總線、zigbee或wifi組網進行連接的。在採用can總線進行連接時,需要硬體直接使用電路連接。採用zigbee或wifi組網進行連接時,存在傳輸距離受限、節點數量受限等問題。
而且,傳統的硬體設備組網無法實時管控硬體節點之間的通信。
技術實現要素:
本發明的目的在於提供一種基於nodejs的m2m通信設備及方法,以實現任意介質的硬體設備之間的數據交互。
為實現以上目的,第一方面,本發明提供一種基於nodejs的m2m通信設備,包括:發送端、nodejs服務端、接收端以及資料庫;
發送端、接收端分別與nodejs服務端的連接;
資料庫中存儲有發送端與接收端之間的關聯信息且資料庫的輸出端與nodejs服務端的輸入端連接。
其中,發送端、接收端均包括至少一類硬體設備組。
其中,nodejs服務端部署在雲服務上或內網伺服器上。
其中,nodejs服務端與資料庫為長連接。
其中,所述的nodejs服務端與發送端、接收端均通過網絡連接。
第二方面,本發明提供一種基於nodejs的m2m通信方法,包括如下步驟:
s1、nodejs服務端從資料庫中讀取發送端與接收端之間的關聯信息;
s2、nodejs服務端根據發送端、接收端的uid信息,按照設定的匹配方式進行配對,並將配對信息保存在hashmap中;
s3、nodejs服務端根據所述配對信息,將發送端發送的數據發送至接收端。
其中,發送端、接收端均包括至少一類硬體設備組。
其中,步驟s2,具體包括:
發送端中的硬體設備組a向nodejs服務端發送攜帶自身uid的認證信息;
nodejs服務端將套接字a與發送端發送的認證信息存儲在hashmap中;
接收端中的硬體設備b組向nodejs服務端發送攜帶自身uid的認證信息;
nodejs服務端將套接字b與發送端發送的認證信息存儲在hashmap中;
nodejs服務端根據在資料庫中讀取的硬體設備組a與硬體設備組b之間的關聯信息,以及硬體設備組a的uid、硬體設備組b的uid按照預定方式進行配對;
在配對後,nodejs服務端將套接字a作為hashmap中的key存儲在hashmap中、將套接字b作為hashmap中的value存儲在hashmap中。
其中,步驟s3,具體包括:
nodejs服務端在接收到發送端發送的數據時,根據發送端的套接字a在hashmap中索引到相對應的接收端套接字blist,向該list中的套接字b進行數據廣播以將數據發送至接收端。
其中,該方法還包括:
nodejs服務端根據資料庫中更新後的硬體配對信息,在hashmap中刪除失效的套接字a和/或套接字b。
與現有技術相比,本發明存在以下技術效果:本發明通過網絡將nodejs服務端、發送端、接收端進行連接。服務端根據不同硬體設備之間的對應關係,完成設備之間的數據交互。由於採用nodejs搭建服務端,數據交互時不受傳輸距離、節點數量、硬體介質、片上作業系統等因素限制,實用性較強。而且nodejs採用事件驅動、異步i/oa,使得程序能夠實現高並發處理,使得設備在相對低的系統資源消耗下,保持高性能和高負載能力。
附圖說明
下面結合附圖,對本發明的具體實施方式進行詳細描述:
圖1是本發明中一種基於nodejs的m2m通信設備的結構示意圖;
圖2是本發明中另一種基於nodejs的m2m通信設備的結構示意圖;
圖3是本發明中一種基於nodejs的m2m通信方法的流程示意圖。
具體實施方式
為了更進一步說明本發明的特徵,請參閱以下有關本發明的詳細說明與附圖。所附圖僅供參考與說明之用,並非用來對本發明的保護範圍加以限制。
如圖1所示,本實施例公開了一種基於nodejs的m2m通信設備,包括:發送端10、nodejs服務端20、接收端30以及資料庫40;發送端10、接收端30分別與nodejs服務端20的連接;資料庫40中存儲有發送端10與接收端20之間的關聯信息且資料庫40的輸出端與nodejs服務端20的輸入端連接。
進一步地,發送端10、接收端30均包括至少一類硬體設備組。其中,硬體設備具有數據收發能力,資料庫40中存儲有發送端10中的至少一類硬體設備與接收端30中的至少一類硬體設備之間的對應關係信息。
本實施例中通過nodejs搭建服務端,nodejs服務端20從資料庫30中讀取發送端10、接收端30中的硬體設備的對應關係,控制不同硬體設備之間的實時數據交互。
進一步地,nodejs服務端20部署在雲服務上或內網伺服器上。
需要說明的是,nodejs服務端20具有固定ip供其它硬體設備進行訪問。發送端10、接收端30中的硬體設備發送指令命令至伺服器進行註冊,在註冊正確後即可實現點對多點、多點對多點的通信服務。
進一步地,nodejs服務端20與資料庫40為長連接。nodejs服務端20實時的從資料庫40中讀取不同硬體設備之間的對應關係信息。
進一步地,nodejs服務端20與發送端10、接收端30均通過網絡連接。其中網絡連接包括但不限於乙太網、無線網絡如gprs、wifi等,與傳統的can總線、zigbee或wifi相比,本實施例中採用nodejs服務端20與硬體設備通過網絡連接的方式,實現了不受傳輸距離、不受硬體介質、片上作業系統等因素的限制,使用性較強。
在實際應用中,目前主流配置的家用pc機(intelcorei5cpu+4gbram)作為伺服器來部署nodejs服務端,由於nodejs具有優秀的高並發特性,仍可以實現500路以上同時在線的配對連接,實現數據通信。
需要說明的是,如圖2所示,本實施例中發送端10中的硬體設備種類和數量與接收端30中的硬體設備的種類和數量可以相同也可以不相同。發送端10中的不同類硬體設備組和接收端30中的不同類硬體設備組之間可以根據需求,實現一對一、多對一、一對多、多對多的配對。
以圖2所示的設備為例,如圖3所示,本實施例提供一種基於nodejs的m2m通信方法,包括如下步驟s1至s3:
s1、nodejs服務端20從資料庫40中讀取發送端10與接收端30之間的關聯信息;
s2、nodejs服務端20根據發送端10、接收端30的uid信息,按照設定的匹配方式進行配對,並將配對信息保存在hashmap中;
s3、nodejs服務端20根據所述配對信息,將發送端10發送的數據發送至接收端30。
本實施例中的nodejs服務端可以根據用戶的需求,動態的管理各硬體設備之間的通信,動態的連通或切斷硬體設備之間的數據通信。
需要說明的是,本實施例中採用nodejs服務端可實現任意介質任意作業系統的硬體設備之間的數據交互,因此圖2中的ⅰ類硬體設備、ⅱ類硬體設備、ⅲ類硬體設備可為異質硬體系統。
需要說明的是,本實施例中的通信方法可以實現分組式的數據交互,比如,將圖2中的ⅰ類硬體設備為a組,ⅱ類硬體設備為b組,nodejs服務端將a組、b組中的每一臺硬體進行匹配的過程具體包括:
發送端10中的硬體設備組a向nodejs服務端20發送攜帶自身uid的認證信息;
nodejs服務端20將套接字a與發送端10發送的認證信息存儲在hashmap中;
接收端30中的硬體設備b組向nodejs服務端20發送攜帶自身uid的認證信息;
nodejs服務端20將套接字b與發送端10發送的認證信息存儲在hashmap中;
nodejs服務端20根據在資料庫30中讀取的硬體設備組a與硬體設備組b之間的關聯信息,以及硬體設備組a的uid、硬體設備組b的uid按照預定方式進行配對;
這裡預定的配對方式包括一對一、一對多、多對一以及多對多等方式。
在配對後,nodejs服務端20將套接字a作為hashmap中的key存儲在hashmap中、將套接字b作為hashmap中的value存儲在hashmap中。
需要說明的是,本實施例中的套接字a為發送端10與nodejs服務端20之間通信連接使用,套接字b為接收端30與nodejs服務端之間通信連接使用。
進一步地,步驟s3,具體包括:
nodejs服務端20在接收到發送端10發送的數據時,根據發送端10的套接字a在hashmap中索引到相對應的接收端30套接字blist,向該list中的套接字b進行數據廣播以將數據發送至接收端30。
需要說明的是,為了適用實際應用情況的需求,資料庫40中硬體設備之間的對應關係信息一般會進行定時更新,本實施例中提供的基於nodejs的m2m通信方法,能夠根據資料庫40中硬體節點配對信息的更新,實時的管控硬體節點之間的通信,具體過程為:
nodejs服務端20根據資料庫30中更新後的硬體配對信息,在hashmap中刪除失效的套接字a和/或套接字b。
這裡指的是刪除不再需要發送或接收的套接字,減少了hashmap數據結構的存儲量,同時確保了hashmap數據結構中存儲的配對信息的準確性,提高了不同硬體設備之間數據交互的準確性。
需要說明的是,本實施例中設備節點之間傳輸通信協議為自定義協議格式,應用中傳輸的數據可為hex或ascii格式,但在實際網絡傳輸時將其轉換為二進位進行傳輸,因此本止住了中傳輸的數據格式可以傳輸任意數據格式的數據,各設備之間使用tcp/ip協議即可實現多臺硬體設備之間的數據互通。
以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所作的任何修改、等同替換、改進等,均應包含在本發明的保護範圍之內。