出处:http://www.cnblogs.com/ants/p/4576366.html
在上一篇文章《RabbitHub开源情况及计划》上有提及到了一个新的开源项目――微信SDK,经过几天的努力现在开源发布Beta1版本。
前言
特点
功能
请求消息
事件消息
响应消息
支持的消息类型
消息处理中间件
支持的API
暂不支持的API
关于性能
关于易扩展性
关于易使用性
关于架构
消息处理
请求消息
事件消息
响应消息
消息格式化器
开源信息
Get By Nuget
交流方式
写在最后
在某一个傍晚,与头为产品“雨后春笋”历经一个下午的讨论的结束而得出一个新的idea,架设一个暂现内部使用的“云”平台,目前主要含有微信相关服务内容,主要目标为实现统一的微信接入地址而可以使用微信自动接入的功能(微信开放平台提供的一种授权方式,可以托管客户的微信,而不需要客户去配置服务器url、token等参数),而次要的目的主要是为了公司内部开发团队更快的接入微信和实现不同项目对微信的统一管理与数据共享。
伴随着这样的需求,我打算重新造一个轮子,微信SDK(Rabbit.WeiXin),旨在提供更好的性能,更易扩展的机制。今天它以开源的姿态进入大家的视野,希望大家可以尝试使用起来,更希望大家能够参与进这个项目之中。
较高的性能
易扩展性
API易使用性
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(语音消息)
GitHub:https://github.com/RabbitTeam/WeiXinSDK/tree/master/Rabbit.WeiXin/SDK/Rabbit.WeiXin/Messages/Response
SignatureCheckHandlerMiddleware(验证签名中间件)
CreateRequestMessageHandlerMiddleware(创建消息中间件)
SessionSupportHandlerMiddleware(会话支持中间件)
IgnoreRepeatMessageHandlerMiddleware(忽略重复的消息中间件)
GenerateResponseXmlHandlerMiddleware(生成相应XML处理中间件)
AgentHandlerMiddleware(代理请求中间件)
基础接口
获取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)
素材管理
用户管理
自定义菜单
账号管理
多客服接口
微信门店接口
微信卡券接口(部分)
数据统计接口
微信小店接口
微信智能接口
摇一摇周边
微信卡券接口
投放卡券
核销卡券
管理卡券
卡券事件推送
在之前的文章就有提及新的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
主要分为两个组件
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