在上一篇文章《 RabbitHub开源情况及计划 》上有提及到了一个新的开源项目——微信SDK,经过几天的努力现在开源发布Beta1版本。
在某一个傍晚,与头为产品“ 雨后春笋 ”历经一个下午的讨论的结束而得出一个新的idea,架设一个暂现内部使用的“云”平台,目前主要含有微信相关服务内容,主要目标为实现统一的微信接入地址而可以使用微信自动接入的功能(微信开放平台提供的一种授权方式,可以托管客户的微信,而不需要客户去配置服务器url、token等参数),而次要的目的主要是为了公司内部开发团队更快的接入微信和实现不同项目对微信的统一管理与数据共享。
伴随着这样的需求,我打算重新造一个轮子,微信SDK(Rabbit.WeiXin),旨在提供更好的性能,更易扩展的机制。今天它以开源的姿态进入大家的视野,希望大家可以尝试使用起来,更希望大家能够参与进这个项目之中。
请求消息(参考文档: http://mp.weixin.qq.com/wiki/10/79502792eef98d6e0c6e1739da387346.html )
GitHub: https://github.com/majian159/WeiXinSDK/tree/master/Rabbit.WeiXin/SDK/Rabbit.WeiXin/Messages/Request
由于较多直接给出GitHub地址: https://github.com/majian159/WeiXinSDK/tree/master/Rabbit.WeiXin/SDK/Rabbit.WeiXin/Messages/Events
GitHub: https://github.com/majian159/WeiXinSDK/tree/master/Rabbit.WeiXin/SDK/Rabbit.WeiXin/Messages/Response
在之前的文章就有提及新的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/majian159/WeiXinSDK
示例地址: https://github.com/majian159/WeiXinSDK/tree/master/Rabbit.WeiXin/Sample/Rabbit.WeiXin.Sample
Email: majian159@live.com
头说不打广告不准开源=_=,so…该SDK会应用在我们的自主产品“ 雨后春笋 ”,地址: http://www.chunsun.cc/ ,欢迎大家参观,有合作意向的可以联系 0591-63323934。
后面会在继续完善SDK(性能和还未实现的API及一些调优)的同时,写一些文章来说明如何使用SDK,和关于SDK设计的相关文章。