Project

aliyun_mns

0.01
No commit activity in last 3 years
No release in over 3 years
aliyun mns http api for topic
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.12
~> 10.0
~> 3.0

Runtime

 Project Readme

AliyunMns

aliyun mns 通过http api操作topic

Installation

Add this line to your application's Gemfile:

gem 'aliyun_mns'

Rails configuration

if you are going to use this gem in a rails environment. You need to create a configuration file at <RAILS_ROOT>/config/aliyun_mns.yml. In this way, you can use different set of topics for your development or production environments.

development:
   access_key_id:       'ccess_key_id'
   access_key_secret:   'access_key_secret'
   endpoint:            '$id.mns.cn-hangzhou.aliyuncs.com'

production:
   access_key_id:       'ccess_key_id'
   access_key_secret:   'access_key_secret'
   endpoint:            '$id.mns.cn-hangzhou.aliyuncs.com'

Config in an application

At last you can also config the gem in place, by excute the following code before invoking and queue service.

AliyunMns.configure do |config|

  config.access_key_id = "access_key_id"
  config.access_key_secret = "access_key_secret"
  config.endpoint = "$id.mns.cn-hangzhou.aliyuncs.com"
  
end

And then execute:

$ bundle install

Usage

about topic

create

AliyunMns::Topic["aTopic"].create

delete

 AliyunMns::Topic["aTopic"].delete

find all topics

AliyunMns::Topic.topics

get topic attributes

request:
topic = AliyunMns::Topic["topic_name"].get_topic_attributes

response:
# topic_name	主题名称
# create_time	主题的创建时间,从 1970-1-1 00:00:00到现在的秒值
# last_modify_time	修改主题属性信息的最近时间,从 1970-1-1 00:00:00 到现在的秒值
# maximum_message_size	发送到该主题的消息体最大长度,单位为 Byte
# message_retention_period	消息在主题中最长存活时间,从发送到该主题开始经过此参数指定的时间后,不论消息是否被成功推送给用户都将被删除,单位为秒
# message_count	当前该主题中消息数目
# logging_enabled	是否开启日志管理功能,True表示启用,False表示停用

{
    :topic_name=>"topic_name", 
    :create_time=>"1472442458", 
    :last_modify_time=>"1472442458", 
    :maximum_message_size=>"65536", 
    :message_retention_period=>"86400", 
    :message_ount=>"5", 
    :logging_enabled=>"False"
}

subscribe

AliyunMns::Topic["atopic", "atopic-subscribe"].subscribe(
          {
              :Endpoint => "http://Endpoint_url",
              :FilterTag => "send-sms",
              :NotifyStrategy => "BACKOFF_RETRY",
              :NotifyContentFormat => "JSON"
          }
      )

unsubscribe

AliyunMns::Topic["aopic", "atopic-subscribe"].unsubscribe

publish message

AliyunMns::Topic["atopic"].publish_message(
          {
              :MessageBody => "test message",
              :MessageTag => "publish_message"
          }
      )

about queue

create

AliyunMns::Queue["aqueue"].create

delete

 AliyunMns::Queue["aqueue"].delete

send message

AliyunMns::Queue["aqueue"].send_message("send_message")

receive message

message = AliyunMns::Queue["aqueue"].receive_message

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release, which will create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/zhangbin/aliyun_mns. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

aliyun_mns