node.js - 如何将通知从 node.js 服务器发送到 android 客户端。

标签 node.js express push-notification

node.js服务端向android客户端发送通知需要用到什么技术。比如用户A加用户B为好友,在这次用户 B 应该会收到一个通知到他的 android 设备,用户 A 想要将其添加为好友。我是 node.js 的新手,你能帮我到底应该使用什么来实现发送此类通知。

最佳答案

您可以使用 MQTT 或 AMQP 消息传递,这些都是非常灵活的技术,非常适合向客户端推送消息。

https://en.wikipedia.org/wiki/MQTT

https://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol

Node.js 对两者都有很好的支持。 Android 有一个 MQTT 客户端,这里有一个示例:http://androidkt.com/android-mqtt/ .

本质上,您可以通过以下方式向客户端推送消息:

client.publish(主题、消息)。

客户会这样订阅:

client.on('message', function (topic, message) {
  // Messages are Buffer objects.
  console.log(message.toString())
  client.end()
})

客户端将使用回调或轮询接收此信息。

这两种技术都使用一个代理作为消息的中间人。

您可以使用免费的在线代理来测试消息传递,例如mqtt://test.mosquitto.org

在 Express 中,初始化消息传递客户端后,您可以在新事件、POSTS、PUTS 等上发送消息。

app.post("/addFriend", function(req, res, next){
    console.log("Friend request added");

    // Write to db.

    // Send a message 
    mqttClient.publish('friends-topic', JSON.stringify({event: 'newfriend', id: '10122', name: 'Mark' }))

    res.end('ok', 200);
});

关于node.js - 如何将通知从 node.js 服务器发送到 android 客户端。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49211083/

相关文章:

node.js - 在nodejs中记录日志并获取参数

node.js - 尝试从数据存储中获取现有实体但返回未定义(未找到)

javascript - 无法显示 ng-view,包含在注释中

push-notification - Phonegap Build,使用 Firebase,通知图标只是白色/灰色方 block

node.js - Node/Express 和部署的 Angular 中的路由不起作用

Node.js : which keys in req. 主体存在于模式中

javascript - 插入或保存到 mongodb 返回 500 服务器错误

android - 华为push sdk for Android target 31

ios - 无需 Apple 服务器的 Apple 推送通知

node.js - 为什么我不能使用导入语法从 TypeScript 导入 CoffeeScript 文件