日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

netty单片机通讯_SSM+Netty实现软硬件通信,真实项目案例

發(fā)布時間:2025/1/21 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 netty单片机通讯_SSM+Netty实现软硬件通信,真实项目案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前言

今天分享的是MySelf自己以前工作項目中的一個模塊實例實現的思路還有流程,在這過程中也是遇到了很多問題,能過順利解決也是團隊溝通的結果。

項目模擬背景:假設我們有一個軟件平臺,我們的線下產品是一些探測器(傳感器)硬件,它們需要在一定范圍下定時上傳數據給服務器,而且服務器可能還需要對他們下達命令(針對單個),或者廣播指令(針對全部),且可能是在管理員的后臺下令,也可能是在用戶的小程序(APP)等前端應用下令,這樣我們就需要一個雙向,并發(fā),異步的通信模塊,且產品量大,需要考慮到連接池的狀態(tài),所以就考慮到了線程的作用。對于連接的監(jiān)聽端口,最好只能一個。

好,通過以上模擬場景,我們在構建思路時,需要將主要的核心點給理解清楚: 1、單端口多連接 2、雙向、并發(fā)、異步 3、下令、廣播 4、數據對數據庫的寫操作 5、對鏈接的實例做安全排查 6、系統(tǒng)自保功能(不是所有人都能鏈接)

整理了這幾個點后,由于項目開始時選用了SSM的底層框架(后期遷移Spring Boot)所以需要考慮到最簡易的模塊化配置方式,在搜羅了幾天的開源項目后,我決定使用Netty來幫助我們解決這一問題。

架構

接下來我直接進入主題,由于平時工作時間長(9小時,研究2小時)所以寫技術分享時,可能不會所有點都細講。

我們先看看我畫的項目架構圖,算是一個流程吧。

恰如SSM也是運行在Tomcat容器的一個Server項目,我在web.xml添加了一個新的監(jiān)聽器,監(jiān)聽器將啟動Netty的線程服務啟動類,其將運行Netty的主配置類,BossGroup是處理連接進來的鏈接實例,WorkerGroup是工作運行的鏈接,我們對業(yè)務的處理就放在TCPServerHandler里面,我對每個實例做了唯一ID的存儲,這樣Service層可以通過ID獲取到鏈接實例,然后進行下令或廣播指令,同時TCPServerHandler也有數據庫寫的操作,這要針對不同的指令頭參數而言。

項目目錄

以上是我們項目的目錄,這是引入的關于netty的包。

有關于通信的協(xié)議定義還有安全性,這個要看你們項目的業(yè)務或要求吧,我們項目采用的是:幀頭+ID+指令類型+指令內容+CRC16+幀尾 服務器和單片機那邊都以這種協(xié)議做處理,保證了數據的安全性。

最后,我截圖了測試服務器的日志,可以看到連接的實例ID 還有API下令的廣播測試事件。

GitHub

本項目的功能已經整合為開源項目,InChat

項目介紹:【預計終版仿騰訊IM項目,目前迭代中…】基于Netty4與SpringBoot,聊天室WebSocket(文字圖片)加API調用Netty長鏈接執(zhí)行發(fā)送消息(在線數、用戶列表)、Iot物聯網-MQTT協(xié)議、TCP/IP協(xié)議單片機通信,異步存儲聊天數據

作者:UncleCatMySelf

鏈接:http://www.imooc.com/article/details/id/258458

來源:慕課網

本文原創(chuàng)發(fā)布于慕課網 ,轉載請注明出處,謝謝合作

推薦閱讀:

總結

以上是生活随笔為你收集整理的netty单片机通讯_SSM+Netty实现软硬件通信,真实项目案例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。