帮酷LOGO
0 0 评论
  • 显示原文与译文双语对照的内容
文章标签:  google cloud  ERL  Erlang  Google Cloud Messaging  
Fork of gcm-erlang optimized to use with smoothie

  • 源代码名称:gcm-erlang
  • 源代码网址:http://www.github.com/pdincau/gcm-erlang
  • gcm-erlang源代码文档
  • gcm-erlang源代码下载
  • Git URL:
    git://www.github.com/pdincau/gcm-erlang.git
  • Git Clone代码到本地:
    git clone http://www.github.com/pdincau/gcm-erlang
  • Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/pdincau/gcm-erlang
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
  • gcm

    Build Status

    软件提供了一个用于 Google Cloud Messaging的Erlang客户机。

    ,你可以对 gcm-erlang做什么:

    你可以使用 gcm-erlang:

    • 启动几个代表由不同 GCM API keys 定义的不同 GCM applicationsgen_servers
    • 向注册到你的应用程序的Android移动设备发送通知消息,并使用 registration id 注册到 GCM

    由于 gcm-erlang 不允许使用纯文本发送多播消息,所以只提供对JSON消息的支持。

    如何编译:

    首先要做的是使用 rebar 编译所有的Erlang文件。

    
    $./rebar get-deps compile
    
    
    
    

    如何与 rebar 一起使用:

    你可以在 rebar.config 中使用gcm_app作为依赖项:

    
    {deps, [
    
    
     {gcm,".*", {git,"https://github.com/pdincau/gcm-erlang.git", {tag,"1.0.1"}}}
    
    
    ]}.
    
    
    
    

    ###How 运行测试:

    
    ./rebar compile &&./rebar skip_deps=true eunit &&./run-dialyzer.sh
    
    
    
    

    :如何运行应用程序 gcm

    编译完所有Erlang文件之后,就可以启动应用程序 gcm-erlang。 这里应用程序依赖于其他应用程序,因此必须同时启动它们。

    
    $ erl -pa deps/*/ebin -pa ebin
    
    
    1> application:start(inets).
    
    
    ok
    
    
    2> application:start(jsx).
    
    
    ok
    
    
    3> ssl:start().
    
    
    ok
    
    
    4> application:start(gcm).
    
    
    ok
    
    
    
    

    如何启动/停止应用程序GCM中的不同 gen_servers:

    gcm-erlang 运行时,你可以启动几个监督的gen_servers,一个用于每个GCM应用程序。 每个gen_server都由内部用于注册和 GCM API key的Atom 定义。

    
    3> gcm:start(foo,"myapikey").
    
    
    {ok,<0.60.0>}
    
    
    4> gcm:start(bar,"myotherapikey").
    
    
    {ok,<0.65.0>}
    
    
    5> gcm:start(baz,"mylastapikey").
    
    
    {ok,<0.79.0>}
    
    
    
    

    你可以使用以下方法停止代表GCM应用程序的gen_server:

    
    6> gcm:stop(foo).
    
    
    
    

    如何发送来自特定GCM应用程序的GCM消息?

    在任何时候,你都可以通过调用以下方法向一个或者多个移动设备发送GCM消息:

    
    7> gcm:push(RegisteredName, RegIds, Message).
    
    
    
    

    或者通过调用:

    
    7> gcm:sync_push(RegisteredName, RegIds, Message).
    
    
    
    

    其中 RegistereName 是注册期间使用的Atom,RegIds 是指定为Erlang二进制文件( 比如 )的注册id的列表( 最大 1000元素)。 <<"APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx...">> ) Message 是一个表示你想发送给设备的数据的Erlang术语。

    在模块 gcm.erl 中使用 jsx 生成JSON消息,最后将有以下形式:

    
    {
    
    
    "registration_ids" : ["APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."],
    
    
    "data" : {
    
    
    "message" :"a message"
    
    
     },
    
    
    "time_to_live" : 3600,
    
    
    "collapse_key" :"your_update"
    
    
    }
    
    
    
    

    你可以使用以下方法发送这里消息:

    
    8> gcm:push(RegisteredName, RegIds, [{<<"data">>, [
    
    
    8> {<<"message">>, <<"a message">>}
    
    
    8> ]}, {<<"time_to_live">>,3600}, {<<"collapse_key">>,<<"your_update">>}]).
    
    
    
    

    或者:

    
    8> gcm:push(RegisteredName, RegIds, [{<<"data">>, [
    
    
    8> {<<"message">>, <<"a message">>}
    
    
    8> ]}]).
    
    
    
    

    gcm-erlang 将把消息推到 Google Cloud Messaging 服务器,并解析为结果提供的JSON。

    要理解错误,请参阅: 解释错误响应错误。

    :

    在构建这个Erlang应用程序时,我使用的一些概念是基于这个 blog post 插件的,并且是基于这个版本Erlang application for APN



    文章标签:  Erlang  ERL  google cloud  Google Cloud Messaging  

    Copyright © 2011 HelpLib All rights reserved.    知识分享协议 京ICP备05059198号-3  |  如果智培  |  酷兔英语