这个 gem 是我利用业余时间开发完成的融云 IM 功能的 Server API 的 Ruby gem,实现了 Server API 的绝大部分接口(实时消息路由、消息历史记录以及在线状态订阅这三个付费服务接口未实现)的 Ruby 对接。这个 gem 已经在我自己的项目中正常运行,大家可以放心使用。
gem 'rong_cloud_server', '~> 0.0.2'
源码请看 martin91/rong_cloud。
如果你在用的过程中,有其他需求或者问题,欢迎在 github 上给我提交 issue,我会仔细考虑提供更多开发。
之前的开发中需要融云 IM 的功能,但是在集成的过程中,都没有找到特别舒服的 gem,大部分的 gem 都已经太长时间没有维护了,很多也缺失测试,而官方的所谓 SDK 就不敢恭维了,与其说是一个 SDK,还不如说是一堆代码片段,根本没法开箱即用,大家先感受一下:
后来使用的是 https://github.com/FlowerWrong/rongcloud-ruby 这个 gem(不知道这个 FlowerWrong 在社区的 id,先表示一下真诚的感谢,因为从最开始的项目集成还有后来的自己的 gem 的开发,都从这个库里受益良多),但是用的过程中依然发现一些问题,比如在发系统消息的时候,由于融云要求数组型参数必须采用 param=value1¶m=value2
的方式,而 rongcloud-ruby
使用的 rest_client 则会将数组参数自动转换为 param[]=value1¶m[]=value2
的方式,导致融云服务器端返回参数错误警告。而且由于这个 ruby gem 久未更新,出错的地方也是没有测试覆盖的,就只能自己先临时 fork 并且修复。
由于自己项目中还用了 httparty 作为 http client,加上 rongcloud-ruby 依赖的 rest client,就导致安装完,项目中有多个 http client,这点就真的好烦了,所以一心想着回头利用业余时间解决这个问题。
本来计划是对 rongcloud-ruby 库进行测试补全跟重构,但是后来评估了这些工作量,觉得还不如重新写一个简洁一点的 gem 就好了,所以就放弃了对 fork 过来的 gem 的继续维护,对此也对 FlowerWrong 表示一下抱歉。
然后,就是开头的那个 gem 的诞生了。。。。。。