从 spring hibernate 服务器推送通知到 android 客户端

Posted

技术标签:

【中文标题】从 spring hibernate 服务器推送通知到 android 客户端【英文标题】:Push Notification from spring hibernate server to android client 【发布时间】:2017-01-22 11:24:00 【问题描述】:

我的项目在 android 和 server 中作为 spring hibernate ,中间件是 mysql。我想从服务器向客户端发送推送通知。我该怎么做?

【问题讨论】:

【参考方案1】:

如何将 Firebase 用作云消息传递服务器。您可以轻松配置和使用它。

private void sendAndroidNotification(String deviceToken,String message,String title) throws IOException 
        OkHttpClient client = new OkHttpClient();
        MediaType mediaType = MediaType.parse("application/json");
        JSONObject obj = new JSONObject();
        JSONObject msgObject = new JSONObject();
        msgObject.put("body", message);
        msgObject.put("title", title);
        msgObject.put("icon", ANDROID_NOTIFICATION_ICON);
        msgObject.put("color", ANDROID_NOTIFICATION_COLOR);

        obj.put("to", deviceToken);
        obj.put("notification",msgObject);

        RequestBody body = RequestBody.create(mediaType, obj.toString());
        Request request = new Request.Builder().url(ANDROID_NOTIFICATION_URL).post(body)
                .addHeader("content-type", CONTENT_TYPE)
                .addHeader("authorization", "key="+ANDROID_NOTIFICATION_KEY).build();

        Response response = client.newCall(request).execute();
        logger.debug("Notification response >>>" +response.body().string());
    

这个例子有点老见source here,使用official doc作为参考和实施指南。

【讨论】:

【参考方案2】:

您可以使用 [JSR356][1](WebSocket 的 API)的实现。 它集成在最新版本的 tomcat 和 jetty 中。 这是一个例子 [https://gist.github.com/chitan/3063774][2] 。 我很久以前就用过这个实现https://github.com/TooTallNate/Java-WebSocket

【讨论】:

以上是关于从 spring hibernate 服务器推送通知到 android 客户端的主要内容,如果未能解决你的问题,请参考以下文章

从 Spring 的 applicationContext xml 传递 hibernate.connection.datasource

Spring/Hibernate下的多个会话工厂

无法从 Spring Boot REST 中的 Hibernate POJO 返回 JSON

从服务器删除已发送的推送通知

如何静音推送通知?

使用 Hibernate、Spring 和 JDBC 配置 SSL 证书