微信HOOK 关于转发消息功能开发的一些开发心得
大家好,我終于又想起來更新博文了…
這次要聊的內(nèi)容是關(guān)于微信HOOK的消息開發(fā),作為一個(gè)用戶基數(shù)龐大的聊天工具,齊全的消息類型是必不可少的,例如發(fā)送文字、圖片、語音、文件、視頻、名片等等,細(xì)細(xì)分類的話也是相當(dāng)多的
前段時(shí)間遇到一個(gè)朋友,需求也很簡(jiǎn)單,定做一個(gè)機(jī)器人,要讓幾個(gè)群里的消息可以互通,由機(jī)器人進(jìn)行轉(zhuǎn)發(fā)
基本就是這樣的形式
朋友的要求并不高,只要機(jī)器人同步文字和圖片即可
我聽了需求之后,覺得并不復(fù)雜,也就是收發(fā)文字和圖片而已,就應(yīng)下了,隨后開始進(jìn)行分析
文字的同步自然不必說,是比較簡(jiǎn)單的
分析到圖片后,我遇到了非常多的難題
首先,圖片的格式眾多,簡(jiǎn)單的分大類就有三種,分別是表情包、動(dòng)態(tài)圖、圖庫中的圖片
在微信中給他們分類的標(biāo)注也是不同的,并且在實(shí)際測(cè)試中,發(fā)現(xiàn)圖片的大小也在影響格式
勉強(qiáng)分析完了眾多的格式之后,進(jìn)行了實(shí)際測(cè)試,又發(fā)現(xiàn)了部分比較大的圖片,需要有一個(gè)下載過程,軟件需要等待下載完成才能發(fā)送圖片,這個(gè)下載過程受制于電腦和網(wǎng)速,幾乎處于不可控狀態(tài),寫到這里我就意識(shí)到這個(gè)方案可能走了彎路
我整理了一天的思路,靈光一閃,我一直以來的思路都是收到消息后再進(jìn)行發(fā)送操作,需要執(zhí)行兩步,而微信中不是有一個(gè)轉(zhuǎn)發(fā)的功能嗎?
于是我猜測(cè),這里的轉(zhuǎn)發(fā)極有可能是通過消息ID進(jìn)行轉(zhuǎn)發(fā)的,每條消息都有一個(gè)自身的ID編號(hào),提交這個(gè)ID編號(hào)給轉(zhuǎn)發(fā)接口,應(yīng)該就能直接完成轉(zhuǎn)發(fā)操作,不需要解析消息的內(nèi)容了
想到這里我就開始分析轉(zhuǎn)發(fā)接口和消息ID,果不其然,一切都和我想的一樣
這樣一來,同步機(jī)器人便完成了,我們又進(jìn)行了詳細(xì)的測(cè)試,各類消息,不僅限于文字和圖片,幾乎所有類型的消息都可以轉(zhuǎn)發(fā),轉(zhuǎn)發(fā)效率也相當(dāng)之快,我們最高進(jìn)行了一秒10張圖片的轉(zhuǎn)發(fā)測(cè)試,軟件依舊快速的完成了,沒有遺漏
到這里,機(jī)器人的制作就完成了,朋友的目的也完美達(dá)到,能幾個(gè)群一起管理,更加方便
尾聲:有時(shí)候研究方向和思路比技術(shù)更重要,若我沒有轉(zhuǎn)換思路,依然在死磕各種消息類型,機(jī)器人做成是沒有問題,但實(shí)際使用恐怕會(huì)有很多麻煩,而轉(zhuǎn)發(fā)的接口只需要一個(gè)消息ID,簡(jiǎn)單快捷,前后差距相當(dāng)大,工作量也大大減小
微信開發(fā)方面的交流學(xué)習(xí)可聯(lián)系博主,詳情可點(diǎn)擊頭像查看簽名
總結(jié)
以上是生活随笔為你收集整理的微信HOOK 关于转发消息功能开发的一些开发心得的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: GBDT算法简介
- 下一篇: sql server 创建唯一性非聚集索