基于EasyTcp4Net開發(fā)一個功能較為完善的去持久化聊天軟件
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
示例發(fā)消息給自己收到消息發(fā)送圖片消息發(fā)送中重連中發(fā)送失敗數(shù)據(jù)包結(jié)構(gòu)以及拆包定義數(shù)據(jù)包結(jié)構(gòu)數(shù)據(jù)包結(jié)構(gòu)定義了每次發(fā)送一個數(shù)據(jù)的完整的數(shù)據(jù)結(jié)構(gòu),我們將包體長度定義在包頭中來解決粘包和斷包的問題。 數(shù)據(jù)包我們采用了簡單的序列化成byte數(shù)組的方式來發(fā)送。
我們在服務(wù)端和客戶端根據(jù)我們定義的數(shù)據(jù)結(jié)構(gòu),來調(diào)用EasyTcp4Net提供的固定包頭來解析數(shù)據(jù)包 _easyTcpClient.SetReceiveFilter(new FixedHeaderPackageFilter(8, 0, 4, false)); 文本/圖片發(fā)送 我們可以定義消息基類,再拓展兩個消息類,一個文本消息,一個圖片消息
圖片消息
文本消息
我們還需要在界面中增加相關(guān)的文本和圖片的ViewModel 發(fā)送消息的時候,發(fā)送者可以立刻將消息添加到聊天界面,然后等待收到自己發(fā)送的消息從服務(wù)端發(fā)來的時候,根據(jù)狀態(tài)判斷消息是否發(fā)送成功,等待的時候可以將消息設(shè)置發(fā)送中的界面狀態(tài)顯示,這種發(fā)送消息邏輯和微信基本一致。 斷線處理 利用EasyTcp4Net提供的斷線的事件,可以非常方便的在服務(wù)端知道客戶端突然斷開了,或者在客戶端知道和服務(wù)端連接斷開了。 客戶端
主要是觸發(fā)了重連的機制。 服務(wù)端
主要是將該用戶從在線列表中移除。 總結(jié)總體來說做一個聊天軟件需要考慮的細節(jié)比較多。 轉(zhuǎn)自https://www.cnblogs.com/qwqwQAQ/p/18330325 該文章在 2024/8/5 10:21:10 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |