繁体   English   中英

Java中的Android GCM推送通知服务器端

[英]Android GCM Push Notification server side in java

关于GCM,我有几个问题。

  1. GCM的官方页面 “入门”下,显示“ Decide which Google-provided GCM connection server you want to use— HTTP or XMPP (CCS). 现在我了解了实践中这两者之间的区别,但是当他说决定选择哪一个时,我不确定他对我有什么期望? 我需要为这两个做不同的事情吗?
  2. 我已经为GCM准备好了android应用。 对于服务器而言,我不确定该怎么做。 我可以向https://android.googleapis.com/gcm/send nd传递参数发出POST请求吗? 我可以为此使用HTTPClient,对吗? 有什么特别的吗?
  3. 另外,我在步骤2中必须要做的服务器。它不一定是服务器吗? 它可以是任何独立的Java代码,我也可以运行它以对gcm进行POST? 仅用于测试目的。

2-基本上就是这样,这是我的服务器代码,这是我服务器中的PHP文件

public function send_push(){
    $message = "your message";

    // Set POST variables
    $url = 'https://android.googleapis.com/gcm/send';

    $fields = array(
                    'registration_ids'  => array("GCM_REGISTRATION"),
                    'data'              => array( "message" => $message ),
                    );

    $headers = array( 
                        'Authorization: key=YOUR_API_KEY',
                        'Content-Type: application/json'
                    );

    // Open connection
    $ch = curl_init();

    // Set the url, number of POST vars, POST data
    curl_setopt( $ch, CURLOPT_URL, $url );

    curl_setopt( $ch, CURLOPT_POST, true );
    curl_setopt( $ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );

    curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode( $fields ) );

    // Execute post
    $result = curl_exec($ch);

    // Close connection
    curl_close($ch);

    echo $result;
}

GCM_REGISTRATION是您首次运行应用以在GCM中注册后所获得的哈希值。 如果一切正常,您可以在logcat中看到

api_key是创建应用程序时获得的哈希(您可能已经在文档中看到了)

3-我认为它不必是服务器,因为它实际上是将消息发送到Google服务器,然后再将其传递到您的应用程序中

  1. 是的,http和ccs服务器之间有很大的区别。 前者涉及简单的http请求。 后者需要xmpp协议实现。

  2. 是的,如果您采用的是gcm http方法,则任何提交http请求的代码都应该起作用。

  3. 出于测试目的,您不需要服务器。 任何提交http请求的代码都可以。 但是,您必须将设备注册ID传递到服务器代码,才能发送GCM消息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM