使用 MySql 在 Java 中实现 Google Cloud 消息传递

     2023-02-24     220

关键词:

【中文标题】使用 MySql 在 Java 中实现 Google Cloud 消息传递【英文标题】:Google Cloud messaging implementation in Java using MySql 【发布时间】:2015-03-30 08:08:12 【问题描述】:

我是一名在 android studio 中学习编写 android 代码的 mac 上的 java 开发人员。我被要求将谷歌云消息集成到应用程序中。

我了解 android studio 有一个按钮,可将 GCM 所需的所有内容放入手机/平板电脑应用程序中。但是,我不知道它对我的应用程序所做的所有更改以及我不使用谷歌作为数据库的要求。相反,我需要使用 mysql 的本地实例,因为我们有应用业务逻辑来向特定用户发送消息。

我已经完成了所有的谷歌服务器端任务。我有我的应用程序密钥、项目密钥……等等。

当涉及到我试图找到的示例和教程时,它们要么过时,要么使用与谷歌当前使用的不同的术语,使用 java 以外的语言作为服务器端,示例基于 eclipse,使用用于隐藏功能(Kii Cloud)或不使用 XMMP (CCS) 实现应用程序/服务器应用程序的第三方库。

我正在寻找一个直接的 Java 服务器实现教程或示例,它使用 XMMP 与 google 进行通信,并安全地与手机/平板电脑上的应用程序和 Android 新手可以学习的类进行通信。

我已经完成了此页面上的活动 http://developer.android.com/google/gcm/gs.html 并点击了“后续步骤”下的链接,但是它们假设我还没有达到一定程度的理解。此页面及其链接提供了我需要的配置和设置,但没有提供它们的放置位置和原因。

当我在这方面取得成功时,我的计划是将所有细节浓缩成一个关于如何做到这一点的 youtube 教程,或者至少是一个非常详细的网页,因为我觉得实现这一点应该不会那么难,尤其是使用 Java、Tomcat、MySql 和 Android 应用程序。这似乎是开始的基本情况。

【问题讨论】:

这对于 SO 的格式来说是一个难题。尽管您遇到的困难是相关的,但您所问的很多问题都是题外话,并且您正在避开关闭您的问题:要求场外资源和教程是题外话;谈论在不提供任何细节的情况下让某些东西工作时遇到问题会让人很难提供帮助,而且你在这里也没有真正要问的问题。如果你把这个问题改写成一个明确的问题,有人可以在几段中回答,你会有更好的运气。 也许this question 会有所帮助。 +Eran 这完美地说明了我的难题...... google 自己的通知的 gcm-server.jar 已被弃用。 “本文档中的信息已被 GCM Server 和 GCM Client 所取代。请使用 GoogleCloudMessaging API 而不是 GCM 客户端帮助程序库。GCM 服务器帮助程序库仍然有效。”这不是他们想要你使用的,但你可以使用,它的有效期是多久? 如果你想找到一些关于GCMCCSXMPP等的教程,你可以参考here和here。 [ 这里 ] (javapapers.com/android/google-cloud-messaging-gcm-ccs-with-xmpp ) 是你想做的一切......希望这会对你有所帮助。 【参考方案1】:

这个问题没有直接的答案-

请在下面找到用 PHP 编写的服务器端代码-

    <?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 * Description of GCM
 *

 */
class GCM 

    //put your code here
    // constructor
    function __construct() 

    

    /**
     * Sending Push Notification
     */
    public function send_notification($registatoin_ids, $message) 
        // include config
        include_once './config.php';

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

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

        $headers = array(
            'Authorization: key=' . GOOGLE_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);

        // Disabling SSL Certificate support temporarly
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

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

        // Execute post
        $result = curl_exec($ch);
        if ($result === FALSE) 
            die('Curl failed: ' . curl_error($ch));
        

        // Close connection
        curl_close($ch);
        echo $result;
    



?>

【讨论】:

如何使用 Laravel 5.6 在 Laravel Eloquent 中实现嵌套 MySQL 查询

】如何使用Laravel5.6在LaravelEloquent中实现嵌套MySQL查询【英文标题】:HowtoimplementnestedMySQLqueryinLaravelEloquentusingLaravel5.6【发布时间】:2019-07-2614:43:34【问题描述】:这是我的MySQL查询:SELECT*FROMcc_calendersWHEREcc_calenders.user_id=1ORcc_calende... 查看详情

如何在mysql数据库中实现CDC

...【发布时间】:2016-04-1112:42:00【问题描述】:我正在尝试使用mysql在我的数据仓库中实现CDC,将更改的数据从我的数据库获取到我的仓库的最佳方法是什么?我试过talend工具,但它需要订阅。【问题讨论】:您尝试实施哪种类型... 查看详情

使用 servlet 在 Java 中实现 REST Web 服务 [重复]

】使用servlet在Java中实现RESTWeb服务[重复]【英文标题】:UsingservletstoimplementRESTwebservicesinJava[duplicate]【发布时间】:2016-09-0613:01:58【问题描述】:在使用PHP和NodeJS之前,我创建了许多提供JSON的RESTWeb服务,并且我知道这个概念。现... 查看详情

在 MySQL 中实现一对一关系时确定外键

...单中,或者一个订单只能包含一件商品。现在因为这可以使用简单的一对一关系来实现,所以我可以执行以下操作:我可以将订单表的 查看详情

使用 rtsp 在 java me 中实现视频流

】使用rtsp在javame中实现视频流【英文标题】:Implementvideostreaminginjavameusingrtsp【发布时间】:2012-08-2706:27:09【问题描述】:我想使用rtspurl实现videostreaminginjavame。在设备上测试代码时,我得到媒体异常声明PrefetchError-33。这是我的... 查看详情

java示例代码_使用Glassfish 2.1在JPA中实现悲观锁定

java示例代码_使用Glassfish 2.1在JPA中实现悲观锁定 查看详情

在 Java 中实现和使用通用的抽象接口

】在Java中实现和使用通用的抽象接口【英文标题】:Implementingandusingageneric,abstractinterfaceinJava【发布时间】:2021-12-1023:34:27【问题描述】:我的任务是创建一个谓词接口并实现一些实现该接口的类。例如,一个名为StartsWith的类是... 查看详情

使用节点而不是整数在Java中实现基数排序

】使用节点而不是整数在Java中实现基数排序【英文标题】:ImplementationofRadixsortinJavausingNodesinsteadofintegers【发布时间】:2015-12-2112:26:52【问题描述】:我的数据结构类有一个最终项目,但我不知道该怎么做。我需要实现基数排序... 查看详情

在 java 中实现 PriorityQueue 的最佳方法是啥?

...】:我正在尝试从头开始实现我自己的PriorityQueue类(不使用任何现有的Java导入或库)。我知道我想使用最小堆数据结构。但我将堆可视化为二叉 查看详情

在 Apache Cassandra 中实现 Mysql 或 Psql 关系表(外键约束)功能

...帮忙。我想知道如何在ApacheCassandra中像Mysql关系表(通过使用外键约束映射到另一个表)一样查询选择查询 查看详情

在 Java 中实现动态插件

...应用程序中实现动态插件功能。理想情况下:应用程序将使用getCapabilities()之类的方法定义一个接口Plugin。插件将是一个JARpluginX.jar,其中包含一个实现Plugin的类PluginXImpl(可能还有其他一些)。用户将plugi 查看详情

如何在 MySQL 中实现三元条件运算符

】如何在MySQL中实现三元条件运算符【英文标题】:HowtoimplementternaryconditionaloperatorinMySQL【发布时间】:2012-01-2008:09:01【问题描述】:我想在MySQL中实现三元条件运算符。我有一张表,其中存在一个字段id。它的值可能为空。我想... 查看详情

在 MySQL 中实现 3NF 而不损失查询速度?

...发布时间】:2021-12-1919:55:01【问题描述】:我第一次练习使用SQL制作数据库,并且在我真正开始编写任何查询之前先制作ER图。我想尝试实现3NF,但不确定基于我尝试的示例场景是否完全成功。3nf是否总是用于查询速度的最佳规... 查看详情

使用具有自动调整大小的默认整数数组在java中实现堆栈

】使用具有自动调整大小的默认整数数组在java中实现堆栈【英文标题】:Stackimplementationinjavausingdefaultintegerarraywithautoresize【发布时间】:2021-12-2418:34:17【问题描述】:所以我试图在java中创建一个更省时的堆栈实现,但我不知道... 查看详情

你将如何在 Java 中实现 LRU 缓存?

...要说EHCache或OSCache等。出于这个问题的目的,假设我想只使用SDK来实现我自己的(边做边学)。鉴于缓存将在多线程环境中使用,您将使用哪些数据结构?我已经使用LinkedHashMap和Collections#synchronizedM 查看详情

java示例代码_MPTT,如何使用JDO在Google App Engine中实现

java示例代码_MPTT,如何使用JDO在Google App Engine中实现 查看详情

在java中实现谐波乘积谱算法

...【发布时间】:2012-05-0513:00:45【问题描述】:我目前正在使用Java开发吉他调音器程序,并且我正在尝试实现谐波乘积频谱算法以确定基频。目前,我制作了一种方法,可以将我的光谱下采样一个因子f。我现在正尝试将所有不同... 查看详情

在 MySQL 中实现一个复杂的查询

】在MySQL中实现一个复杂的查询【英文标题】:ImplementingacomplexqueryinMySQL【发布时间】:2015-12-3121:05:04【问题描述】:我有3张桌子:餐桌用品表格子产品桌子库存。我想像下面的结果表一样加入这些表。事实上,我想要所有产品... 查看详情