999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Netty+WebSocket的社區增值服務平臺的推送設計

2017-01-21 22:35:20陳純純
物聯網技術 2016年12期

陳純純

摘 要:通過對比國內外同類軟件,服務端采用Netty+WebSocket技術,客戶端采用基于Android平臺的JSON解析技術,設計并實現了一款智能小區增值服務軟件系統,可以向小區用戶分組及時推送重要資訊,向小區周圍配套服務系統提供接口。文中主要介紹了該系統推送服務的設計原理。

關鍵詞:Netty;WebSocket;JSON;增值平臺

中圖分類號:TP393.0 文獻標識碼:A 文章編號:2095-1302(2016)12-00-03

0 引 言

隨著人們逐漸從PC解放,需求開始轉移到移動設備的應用上。目前福建地區的小區住戶、物業和周邊配套服務都還處于離散狀態,人們迫切希望有一款基于移動設備的智能社區服務平臺,可以通過該系統方便住戶隨時獲取小區的重要資訊,了解住宅的實時情況,監控和控制住宅內的電器設備。而小區周邊的其他配套服務系統可以通過該平臺提供的接口直接與平臺對接,向住戶提供服務。

1 系統設計原理圖

本系統建立在J2EE平臺上,運用 MySQL數據庫管理系統將 JSON解析與Netty、 WebSocket等技術相結合,構建更加智能的社區增值服務平臺。社區增值服務系統搭建在云平臺之上,充分利用現代化信息技術手段實現社區管理及服務的信息化、集約化,依托云平臺的理念和優勢,將已有的專業系統納入其中,為社區居民、物業管理、周邊服務機構提供便利豐富的終端服務。系統設計原理圖如圖1所示。

該平臺的亮點是信息的分類推送,開發之前對信息推送的兩種方式進行分析:

(1)第一種是客戶端使用Pull(拉)的方式,即定時到服務器上獲取,看是否有更新的信息。

(2)第二種是服務器使用Push(推送)的方式,把最新的信息Push到客戶端上。

雖然Pull和Push兩種方式都能實現獲取服務端更新信息的功能,但Push方式比Pull方式更優越[1,2]。

本文通過對比分析國內現有的移動設備推送解決方案,采用Netty+WebSocket持久連接的方式,實現了消息的實時性推送和分類推送。

2 推送與控制實現

平臺可實現系統用戶的需求,如查看家中的光照強度、室內溫度、空氣濕度、煙霧濃度等實時數據,并對家中的家居進行控制操作,對硬件與手機之間的鏈接通信進行了詳細合理的設計。Netty與WebSocket的結合完美解決了此通路問題,為實現平臺的實時推送和分類推送奠定了基礎。

2.1 推送的設計與實現

平臺的服務器分為Netty Server與WebSocket Server兩個部分。

(1)Netty Server集成了WebSocket Client,用來實現與各硬件之間的數據傳送,Netty Server在初始化時與WebSocket Server建立長鏈接;

(2)WebSocket Server實現了與集成在Netty服務器中的WebSocket Client之間的數據傳送以及與用戶手機端(或網頁)的交互。

推送和控制詳細設計原理圖如圖2所示。

平臺將傳感器的數據推送到用戶的流程描述:單片機采集各傳感器的實時數據,將這些數據通過TCP上傳到Netty服務器,當TCP與Netty服務器第一次建立連接時,觸發channelActive()方法建立通道,該通道在傳感器斷開之前一直存在,此后傳感器定時發送數據,并直接觸發channelRead0()方法接收,接收到的數據由集成在本服務器的WebSocket Client模塊處理,通過WebSocketClient.send()方法發送給WebSocket服務器,WebSocket服務器中的WebSocket Server通過onMessage()方法接收,接收到實時數據后,則由client.session.getBasicRemote().sendText(msg)將數據推送給手機或網頁終端。

Netty服務器采用多線程服務器,對于每一個連接請求,dispatcher都會為其創建并分配一個線程,該線程負責這個請求的處理,優點是執行粒度是完整的處理流程,處理邏輯清晰,易于開發。但也存在隨著處理請求的不斷增加,會導致并發執行的線程數量太多等問題。過多的線程數量會導致系統在線程調度和資源爭用上的開銷過大,從而引起系統性能急劇下降,導致系統處理能力下降。該平臺采用了改進措施,引入線程池,系統最多只能創建一定數量的線程,該平臺規定最多能創建的線程數量為100。當所有線程都飽和運行時,新到達的處理請求只能等待或者被拋棄。

在實現WebSocket的鏈接過程中, 客戶端和普通的瀏覽器都通過80或者443端口和服務器進行請求握手,服務器根據http header識別是否是一個WebSocket請求,如果是,則將請求升級為一個WebSocket連接,握手成功后就進入雙向長連接的數據傳輸階段。WebSocket的數據傳輸基于幀方式:0x00 表示數據開始, 0xff表示數據結束,數據以utf-8編碼。第一次請求客戶端發送的是http請求,請求頭中包含WebSocket相關的信息,服務器端對請求進行驗證,驗證成功后,將請求升級為一個WebSocket連接,之后的通信就進入雙向長連接的數據傳輸階段,通過send和onMessage方法通信。

2.2 分類推送

平臺采用WebSocket協議不僅實現了Netty服務器與WebSocket服務器的實時通信,在分類通信上也做了一定嘗試,如推送工作,推送給哪一類型的用戶,可以根據數據的格式來進行劃分,在本平臺中只做了初步劃分,如數據格式為:{ "from":"SMSG","room":"1201","temperature":"1","humidity":"2.0","smoke?":"3"}(JSON形式),從“room”字段可以知道該數據是準備傳送給1201室的用戶,目前平臺只做了這個分類,平臺的下一步工作將在數據的格式上進行進一步細化和分類,如按不同的樓棟,甚至不同的樓層分類,在分類推送上完善平臺的功能。

主站蜘蛛池模板: 日本爱爱精品一区二区| 色综合久久久久8天国| 国产精品免费p区| 无码日韩视频| 日韩资源站| 国产成人福利在线| 四虎国产在线观看| 国产成人无码Av在线播放无广告| 成人在线第一页| 57pao国产成视频免费播放| 久久亚洲黄色视频| 国产午夜在线观看视频| 国产欧美精品专区一区二区| 尤物国产在线| 蜜桃视频一区二区| 精品久久久无码专区中文字幕| 91免费国产在线观看尤物| 国产无吗一区二区三区在线欢| 欧美中出一区二区| a色毛片免费视频| 一级毛片免费不卡在线| 亚洲无卡视频| 91探花在线观看国产最新| 永久免费av网站可以直接看的| 国产成人91精品| 国产精品不卡片视频免费观看| 日韩亚洲综合在线| 亚洲国产精品一区二区高清无码久久| 久久五月天综合| 四虎精品国产AV二区| 国产成人高清精品免费| 国产精品亚洲一区二区三区z | 国产视频一二三区| 成人午夜在线播放| 亚洲第一视频区| 免费一级大毛片a一观看不卡| 亚洲男女天堂| 国产成人久久777777| 国内自拍久第一页| 最新精品国偷自产在线| 狠狠干综合| 怡红院美国分院一区二区| 99视频在线精品免费观看6| 天天综合色网| 国产欧美日韩18| 国产91精选在线观看| 国产91精品久久| 91青青在线视频| 精品国产免费观看| 91美女视频在线| 在线观看国产黄色| 国产呦精品一区二区三区网站| 国语少妇高潮| 亚卅精品无码久久毛片乌克兰| 制服无码网站| a欧美在线| 在线va视频| 无码专区在线观看| 亚洲中文字幕在线观看| 无码中文字幕精品推荐| 天天做天天爱夜夜爽毛片毛片| 久久伊伊香蕉综合精品| 国产黄网永久免费| 四虎在线高清无码| 日韩区欧美区| 国产无码性爱一区二区三区| 国产爽妇精品| 亚洲av无码久久无遮挡| 在线五月婷婷| 国产欧美在线观看一区| 亚洲无码91视频| 亚洲成a人片77777在线播放| 欧美成人午夜视频免看| 国产人成乱码视频免费观看| 91丝袜在线观看| 国产第八页| 99精品伊人久久久大香线蕉| 在线观看国产精美视频| 国产白浆视频| 国产一级一级毛片永久| 国产乱子伦视频在线播放| 亚洲第一区在线|