Azure 移动应用程序:无法从我的 nodeJS 后端发送推送通知
Posted
技术标签:
【中文标题】Azure 移动应用程序:无法从我的 nodeJS 后端发送推送通知【英文标题】:Azure mobile apps: can't send push notifications from my nodeJS back-end 【发布时间】:2017-02-27 15:04:53 【问题描述】:首先,我要澄清的是,我仅在 Azure 端使用免费模块和服务计划,使用 Bizspark 订阅。
我目前正在尝试在以下教程中运行该应用程序:
https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-xamarin-forms-get-started-push
一切都在客户端运行,项目被正确发送并存储在数据库中。但是,我不能让 NodeJS 服务器向设备发送推送通知。 我基本上复制并粘贴了教程中nodeJS后端的代码,重新部署/重新启动了服务器,但没有发送任何推送通知。
我试图查看代码中哪里出了问题,所以我到处使用了一些 logger.info。然后我发现 context.push 是未定义的。
但是,我确实将移动应用程序连接到 Azure 移动应用程序菜单中“推送”类别中的通知中心(它确实显示为已连接)。
Push page on my mobile app
谷歌云消息也配置正确,启动应用时收到注册成功的推送通知。
我错过了什么?是因为我使用的是免费计划(通知中心、数据库、服务计划)吗?
【问题讨论】:
【参考方案1】:首先,您可以测试通过 Azure 门户发送通知,为此,请参阅以下步骤。
-
转到 Azure 门户并导航到您的通知中心。
点击支持+疑难解答菜单下的测试发送。
选择您使用的平台,然后填写payload消息并点击发送按钮。
几乎立即(但实际上,由于 PNS 延迟可能需要几分钟),您将在您的应用程序上看到推送通知警报。
对于 Azure 移动应用程序上的 node.js 后端,您可以使用以下代码行向所有注册的客户端发送推送通知。
var payload =
data:
message: 'Hello!'
;
notificationHubService.gcm.send(null, payload, function(error)
if(!error)
//notification sent
);
欲了解更多信息,请查看this tutorial。
【讨论】:
【参考方案2】:我确实尝试了几次测试发送,它运行良好,因此我无法理解它是如何无法运行的。当我在 Azure 上使用基本的后端 nodeJS 服务器时,我无法使用与 @aaron-chen-msft 完全相同的代码(快速入门服务器,因此我需要安装“azure”npm 包),但我添加了将以下字符串添加到我在 Azure 上的移动应用程序设置(应用程序设置选项卡):
键:MS_NotificationHubName 值:MyNotificationHubName(此处为 Poke-Forgh)
Context.push 没有未定义,但通知没有发送,所以我受到 @aaron-chen-msft 代码的启发,我编辑了 nodeJS 代码以专门向 GCM 发送通知:
context.push.gcm.send(null, payload, function (error) ...
它终于奏效了。谢谢!
【讨论】:
以上是关于Azure 移动应用程序:无法从我的 nodeJS 后端发送推送通知的主要内容,如果未能解决你的问题,请参考以下文章
是否可以仅使用用户从我的 .net 核心应用程序登录 Azure 并通过?
无法将 100K jpg 从我的根目录移动到另一个文件夹 [重复]
使用 reactjs(非本机)从我的网站创建一个移动应用程序
如何从 Azure 移动应用服务调用 HTTP(Azure Functions)?