google-cloud-messaging - 使用 Pubnub 在渐进式 Web 应用程序上发送和接收推送通知

标签 google-cloud-messaging pubnub web-push progressive-web-apps

我有一个 Progressive WebApp Chat 应用程序,我希望能够在桌面上发送或接收推​​送通知(在移动设备上)和 Web (Chrome) 通知。现在,我有一个网络客户端能够接收 tickles,即没有有效负载的数据(然后通过 API 调用从我的服务器获取有效负载)

我正在使用 PubnubGCMAPNS 对话。我在项目的Web、iOS( native )和 Android( native ) 客户端上有可用的应用程序。现在,我可以在我的网络应用程序上接收推送通知,但没有负载。

没有服务器在哪里发布任何东西。所有的发布都是由客户完成的,因为它主要是一个聊天应用程序。

在我的 Web/Android 客户端中,我的 pubnubPayload 是:

var pubnubPayload = {
    "text": "no payload!",
    "pn_gcm": {
        "data": {
            "title": "shash",
            "babe": "ya"
        }
    }
}

然后像这样进行正常的发布:

Pubnub.publish({
    channel: myChannel,
    message: pubnubPayload,
    callback: someFunc
});

所以,当我订阅这样的 pubnub channel 时:

    Pubnub.subscribe({
        channel: selectedChannel,
        message: function(m){
            console.log(m)
        },
        error: function (error) {
            // Handle error here
            console.log(JSON.stringify(error));
        }
    });

我通过 Pubnub 收到消息并在我的网络应用程序上收到推送通知(但没有负载)。

我的问题是:

如何在 Web 上接收具有负载的推送通知?有没有 pubnub 可以让你为网络客户端发布加密消息,以便能够读取 GCM 推送通知的有效负载而无需使用 Pubnub's Access Manager

或者使用 PAM 是我唯一的选择并且应该解决无负载问题吗?

最佳答案

消息加密不需要 PubNub Access Manager

PubNub Access Manager和消息加密没有直接关系,不需要加密您的消息,但所有使用 PubNub 的应用程序 should implement Access Manager to control who can do what on channels通过 granting permissions (read/write/delete) to auth-keys您的客户端应用程序将初始化 PubNub,以按您的预期使用这些 channel 。

使用标准 TLS(以前称为 SSL)加密

要加密消息,只需在启用 TLS 的情况下初始化 PubNub(ssl 可能是参数的名称,但它是最新的 TLS,而不是已弃用的旧 SSL)。这将从您的服务器或客户端应用程序到 PubNub 网络使用标准 TLS 加密。

使用 AES 256 加密的密码 key 加密消息

如果您希望将您的消息从您的服务器/客户端应用程序加密到 PubNub 以及整个 PubNub,只需 provide a cipher key when you initialize PubNub .最好的部分是您持有 key ,而不是 PubNub,因此除了那些密码 key 的持有者之外,没有人可以阅读您的消息。

使用加密/解密 API 的自定义加密

此处提出的问题包括移动推送通知,这意味着如果您希望 PubNub 将移动推送消息发送到推送服务 (APNS/FCM) 并由这些服务正确处理,则您无法加密完整消息。实时消息将按原样(加密)发送给客户端订阅者。但是您可以加密消息的重要/ secret 部分,并保留需要由 PubNub 和推送服务准备好的部分未加密 using the encrypt and decrypt APIs .文章,Encryption for APNS, GCM, WMS with PubNub , 有点旧,但应该提供所需的见解。

关于google-cloud-messaging - 使用 Pubnub 在渐进式 Web 应用程序上发送和接收推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39435807/

相关文章:

Android 推送通知 - 如何获取设备 ID

android - 如果我没有任何数据要存储,在使用 GCM 时是否需要后端服务器作为中介?

ios - 从 PNMessage 对象的 NSMutableArray 请求消息文本

node.js - PubNub错误: Maximum channel group count exceeded

android - 推送通知是否需要 Google Cloud Messaging Service

Android - Android 6.0.1 上的 GCM 错误 'SERVICE_NOT_AVAILABLE'

node.js - 当用户点击 pwa、Angular 6 和 Node.JS 中的 web-push 中的通知时路由到 url

javascript - chrome 通知退订事件

objective-c - PubNub client() 函数不适用于回调

javascript - 如何对Web Push做特征检测?