出處:http://www.cnblogs.com/ants/p/4576366.html
在上一篇文章《RabbitHub開源情況及計劃》上有提及到了一個新的開源項目——微信SDK,經過幾天的努力現在開源發佈Beta1版本。
目錄
前言
特點
功能
請求消息
事件消息
響應消息
支持的消息類型
消息處理中間件
支持的API
暫不支持的API
關於性能
關於易擴展性
關於易使用性
關於架構
消息處理
請求消息
事件消息
響應消息
消息格式化器
開源信息
Get By Nuget
交流方式
寫在最後
前言
在某一個傍晚,與頭爲產品“雨後春筍”歷經一個下午的討論的結束而得出一個新的idea,架設一個暫現內部使用的“雲”平臺,目前主要含有微信相關服務內容,主要目標爲實現統一的微信接入地址而可以使用微信自動接入的功能(微信開放平臺提供的一種授權方式,可以託管客戶的微信,而不需要客戶去配置服務器url、token等參數),而次要的目的主要是爲了公司內部開發團隊更快的接入微信和實現不同項目對微信的統一管理與數據共享。
伴隨着這樣的需求,我打算重新造一個輪子,微信SDK(Rabbit.WeiXin),旨在提供更好的性能,更易擴展的機制。今天它以開源的姿態進入大家的視野,希望大家可以嘗試使用起來,更希望大家能夠參與進這個項目之中。
特點
較高的性能
易擴展性
API易使用性
功能
支持的消息類型
請求消息(參考文檔:http://mp.weixin.qq.com/wiki/10/79502792eef98d6e0c6e1739da387346.html)
RequestMessageImage(圖片消息)
RequestMessageLink(鏈接消息)
RequestMessageLocation(位置消息)
RequestMessageShortVideo(短視頻消息)
RequestMessageText(文本消息)
RequestMessageVideo(視頻消息)
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
響應消息
ResponseMessageImage(圖片消息)
ResponseMessageMusic(音樂消息)
ResponseMessageNews(圖文消息)
ResponseMessageText(文本消息)
ResponseMessageTransferCustomerService(多客服消息)
ResponseMessageVideo(視頻消息)
ResponseMessageVoice(語音消息)
消息處理中間件
SignatureCheckHandlerMiddleware(驗證簽名中間件)
CreateRequestMessageHandlerMiddleware(創建消息中間件)
SessionSupportHandlerMiddleware(會話支持中間件)
IgnoreRepeatMessageHandlerMiddleware(忽略重複的消息中間件)
GenerateResponseXmlHandlerMiddleware(生成相應XML處理中間件)
AgentHandlerMiddleware(代理請求中間件)
支持的API
基礎接口
獲取access token
獲取微信服務器IP地址
發送消息
上傳卡券Logo
創建卡券
獲取卡券可用顏色
客服管理
多客服會話控制
獲取客服聊天記錄
客服接口(http://mp.weixin.qq.com/wiki/1/70a29afed17f56d537c833f89be979c9.html)
高級羣發接口(http://mp.weixin.qq.com/wiki/15/5380a4e6f02f2ffdc7981a8ed7a40753.html)
模板消息接口(http://mp.weixin.qq.com/wiki/17/304c1885ea66dbedf7dc170d84999a9d.html)
素材管理
用戶管理
自定義菜單
賬號管理
多客服接口
微信門店接口
微信卡券接口(部分)
暫不支持的API
數據統計接口
微信小店接口
微信智能接口
搖一搖周邊
微信卡券接口
投放卡券
覈銷卡券
管理卡券
卡券事件推送
關於性能
在之前的文章就有提及新的SDK是比較追求性能的而在beta1版本中通過一些性能測試還算是達標,後續我會繼續在性能上做足優化,爭取提升併發量。
下面是與市面上一個較成熟的微信SDK的性能測試對比:
測試環境:
CPU:i7-3610qm
內存:16gb
系統:Windows 8.1 x64
編譯配置:Release
迭代次數:10000(一萬次)
計數工具:CodeTimer
對比的SDK:暫不透露
測試結果:
爲了防止和用來做對比的SDK粉絲或作者爭吵,所以具體的測試代碼我不放出了,同樣用來被對比的SDK名稱我也不公佈了,但測試結果絕對公正。
關於擴展性
在消息處理過程中採用了管道模式的設計,借鑑了Open Web Interface的思想和一些規範來打造整個消息處理的模型,使消息處理變得更加輕便。
同時SDK內部內置了一個簡單的依賴注入實現 IDependencyResolver,解耦了很多服務與服務實現。
下面的Demo項目的中的微信請求Action:
使用者可以自行註冊處理的中間件來完成自定的邏輯,後面會專門寫具體的使用教程。
關於易使用性
這一塊不過多闡述,因爲目前這一塊並不是很突出,會在後續的版本優化這一塊的內容。
關於架構
消息處理
請求消息
事件消息
響應消息
消息格式化器
開源信息
開源協議: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