.NET平臺下的微信SDK(Rabbit.WeiXin)開源發佈

出處:http://www.cnblogs.com/ants/p/4576366.html


在上一篇文章《RabbitHub開源情況及計劃》上有提及到了一個新的開源項目——微信SDK,經過幾天的努力現在開源發佈Beta1版本。

目錄

  1. 前言

  2. 特點

  3. 功能

    1. 請求消息

    2. 事件消息

    3. 響應消息

    4. 支持的消息類型

    5. 消息處理中間件

    6. 支持的API

    7. 暫不支持的API

  4. 關於性能

  5. 關於易擴展性

  6. 關於易使用性

  7. 關於架構

    1. 消息處理

    2. 請求消息

    3. 事件消息

    4. 響應消息

    5. 消息格式化器

  8. 開源信息

  9. Get By Nuget

  10. 交流方式

  11. 寫在最後

前言

    在某一個傍晚,與頭爲產品“雨後春筍”歷經一個下午的討論的結束而得出一個新的idea,架設一個暫現內部使用的“雲”平臺,目前主要含有微信相關服務內容,主要目標爲實現統一的微信接入地址而可以使用微信自動接入的功能(微信開放平臺提供的一種授權方式,可以託管客戶的微信,而不需要客戶去配置服務器url、token等參數),而次要的目的主要是爲了公司內部開發團隊更快的接入微信和實現不同項目對微信的統一管理與數據共享。

    伴隨着這樣的需求,我打算重新造一個輪子,微信SDK(Rabbit.WeiXin),旨在提供更好的性能更易擴展的機制。今天它以開源的姿態進入大家的視野,希望大家可以嘗試使用起來,更希望大家能夠參與進這個項目之中。

特點

  1. 較高的性能

  2. 易擴展性

  3. API易使用性

功能

支持的消息類型

請求消息(參考文檔:http://mp.weixin.qq.com/wiki/10/79502792eef98d6e0c6e1739da387346.html

  1. RequestMessageImage(圖片消息)

  2. RequestMessageLink(鏈接消息)

  3. RequestMessageLocation(位置消息)

  4. RequestMessageShortVideo(短視頻消息)

  5. RequestMessageText(文本消息)

  6. RequestMessageVideo(視頻消息)

  7. RequestMessageVoice(語音消息)

GitHub:https://github.com/RabbitTeam/WeiXinSDK/tree/master/Rabbit.WeiXin/SDK/Rabbit.WeiXin/Messages/Request

事件消息

由於較多直接給出GitHub地址:https://github.com/RabbitTeam/WeiXinSDK/tree/master/Rabbit.WeiXin/SDK/Rabbit.WeiXin/Messages/Events

響應消息

  1. ResponseMessageImage(圖片消息)

  2. ResponseMessageMusic(音樂消息)

  3. ResponseMessageNews(圖文消息)

  4. ResponseMessageText(文本消息)

  5. ResponseMessageTransferCustomerService(多客服消息)

  6. ResponseMessageVideo(視頻消息)

  7. ResponseMessageVoice(語音消息)

GitHub:https://github.com/RabbitTeam/WeiXinSDK/tree/master/Rabbit.WeiXin/SDK/Rabbit.WeiXin/Messages/Response

消息處理中間件

  1. SignatureCheckHandlerMiddleware(驗證簽名中間件)

  2. CreateRequestMessageHandlerMiddleware(創建消息中間件)

  3. SessionSupportHandlerMiddleware(會話支持中間件)

  4. IgnoreRepeatMessageHandlerMiddleware(忽略重複的消息中間件)

  5. GenerateResponseXmlHandlerMiddleware(生成相應XML處理中間件)

  6. AgentHandlerMiddleware(代理請求中間件)

支持的API

  1. 基礎接口

    1. 獲取access token

    2. 獲取微信服務器IP地址

  2. 發送消息

    1. 上傳卡券Logo

    2. 創建卡券

    3. 獲取卡券可用顏色

    4. 客服管理

    5. 多客服會話控制

    6. 獲取客服聊天記錄

    7. 客服接口(http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html

    8. 高級羣發接口(http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html

    9. 模板消息接口(http://mp.weixin.qq.com/wiki/17/304c1885ea66dbedf7dc170d84999a9d.html

    10. 素材管理

    11. 用戶管理

    12. 自定義菜單

    13. 賬號管理

    14. 多客服接口

    15. 微信門店接口

    16. 微信卡券接口(部分)

暫不支持的API

  1. 數據統計接口

  2. 微信小店接口

  3. 微信智能接口

  4. 搖一搖周邊

  5. 微信卡券接口

    1. 投放卡券

    2. 覈銷卡券

    3. 管理卡券

    4. 卡券事件推送

關於性能

在之前的文章就有提及新的SDK是比較追求性能的而在beta1版本中通過一些性能測試還算是達標,後續我會繼續在性能上做足優化,爭取提升併發量。

下面是與市面上一個較成熟的微信SDK的性能測試對比:

測試環境:

CPU:i7-3610qm

內存:16gb

系統:Windows 8.1 x64

編譯配置:Release

迭代次數:10000(一萬次)

計數工具:CodeTimer

對比的SDK:暫不透露

測試結果:

image

爲了防止和用來做對比的SDK粉絲或作者爭吵,所以具體的測試代碼我不放出了,同樣用來被對比的SDK名稱我也不公佈了,但測試結果絕對公正。

關於擴展性

在消息處理過程中採用了管道模式的設計,借鑑了Open Web Interface的思想和一些規範來打造整個消息處理的模型,使消息處理變得更加輕便。

同時SDK內部內置了一個簡單的依賴注入實現 IDependencyResolver,解耦了很多服務與服務實現。

下面的Demo項目的中的微信請求Action:

image

使用者可以自行註冊處理的中間件來完成自定的邏輯,後面會專門寫具體的使用教程。

關於易使用性

這一塊不過多闡述,因爲目前這一塊並不是很突出,會在後續的版本優化這一塊的內容。

關於架構

消息處理

image

請求消息

image

事件消息

image

響應消息

image

消息格式化器

image

開源信息

開源協議:Apache License 2.0

託管地址:https://github.com/RabbitTeam/WeiXinSDK

示例地址:https://github.com/RabbitTeam/WeiXinSDK/tree/master/Rabbit.WeiXin/Sample/Rabbit.WeiXin.Sample

Get By Nuget

主要分爲兩個組件

Rabbit.Web

地址:https://www.nuget.org/packages/Rabbit.WeiXin/

命令:Install-Package Rabbit.WeiXin

Rabbit.WeiXin.MvcExtension

地址:https://www.nuget.org/packages/Rabbit.WeiXin.MvcExtension/

命令:Install-Package Rabbit.WeiXin.MvcExtension

交流方式

QQ羣:384413261

Email:[email protected]

寫在最後

    頭說不打廣告不準開源=_=,so…該SDK會應用在我們的自主產品“雨後春筍”,地址:http://www.chunsun.cc/,歡迎大家參觀,有合作意向的可以聯繫0591-63323934

    後面會在繼續完善SDK(性能和還未實現的API及一些調優)的同時,寫一些文章來說明如何使用SDK,和關於SDK設計的相關文章。

分類: WeiXinSDK


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章