Articles of 通知

WebPush UnauthorizedRegistration 400尝试从节点Js发送推送通知时出错

我正尝试使用来自NodeJS的Web Push发送推送通知。 以下是我在前端获取订阅的方式: swRegistration.pushManager.subscribe({ userVisibleOnly: true, applicationServerKey: "SOME_APPLICATION_PUBLIC_KEY" })….. 这里是我用来发送推送通知的NodeJS: const webpush = require('web-push'); const options = { vapidDetails: { subject: 'mailto:SOME_MAIL_ID', publicKey: 'SOME_PUBLIC_KEY', privateKey: 'SOME_PRIVATE_KEY' } }; const pushSubscription = {"endpoint":"https://fcm.googleapis.com/fcm/send/SOME_END_POINT","keys{"p256dh":"SOME VALUE","auth":"SOME_VALUE"}}; webpush.sendNotification(pushSubscription, "Test Notification", options) .then(function(response) { console.log(response) }) .catch(function(error) {console.log(error)}); 然后我得到一个400错误。 我已经交叉validation了我的gcm_sender_id和我的服务器密钥。 一切看起来不错,通知在Firefox中testing正常工作,并在Chrome中失败。 这是我得到的错误: name: 'WebPushError', message: 'Received unexpected response code', statusCode: […]

用户收到来自nodejs的超过1个通知

这是我第一次使用nodejs,并且遇到了一些问题。 主要的问题是用户从服务器接收到超过1个信号。 计数基于页面的刷新。 以下是我的代码: var http = require('http'); var server = http.createServer().listen(1332); var io = require('socket.io').listen(server); var redis = require('redis'); var sub = redis.createClient(); //Subscribe to the Redis chat channel sub.subscribe('notification_count'); console.log("Server is running…\nClick on Ctrl+C to exit"); io.sockets.on('connection', function (socket) { var user_id = socket["handshake"]["query"]["user_id"]; console.log("user_id", user_id); socket.room = user_id; socket.join(user_id); socket.on('disconnect', function(){ socket.leave(socket.room); […]

这个错误是什么意思:Falsy值为收件人键'registrationTokens'

我得到这个错误:使用gcm推送通知时收件人键'registrationTokens'的Falsy值。 下面你可以find我的代码: Device.find({ user: { $in: users }}, function (err, devices) { if (err) { logger.error('500 ' + err) return res.status(500).json({ code: config.errorCode.status500.code, message: config.errorCode.status500.message }) } var androidRegTokens = [] var iOSReqTokens = [] for (var i = 0; i < devices.length; i++) { if (devices[i].platform == 'Android') { androidRegTokens.push(devices[i].deviceToken) } else { iOSReqTokens.push(devices[i].deviceToken) […]

Node.js和Socket.IO通知警告服务器重新启动

对不起,如果这是这个问题的错误堆栈。 我有一个在Heroku上运行的Node.js服务器。 每当我提交的东西,服务器重新启动。 我想警告用户,将会重新启动,这样我就不会完全毁了他们的经验。 只是一个简单的通知与文本“服务器在X分钟重新启动”。 比方说,我已经设置了客户端,并且Socket.IO发出是通知显示所需的全部内容。 我该怎么做? 我想在客户端有一些鬼鬼祟祟的function,会让服务器发出通知,但是恐怕很容易被利用。

实时networking通知服务

我一直在试图build立一个实时通知系统。 最近2天我search了很多,我相信最好和最简单的解决scheme是使用node.js和socket.io来开发它,但我不知道这些。 node.js和socket.io是一个很好的实践,使其发生? 规格 将存储在数据库中的两组用户(简单用户和pipe理员) 当一个简单的用户发布一些东西,该post将被发送到(所有)pipe理员 如果pipe理员回复post,回复将只发送给特定的用户 有什么简单的例子或教程,以开始一些东西? 如果任何人可以发表任何例子,这将是非常有帮助的我..

HTML5 Websocket + Node.js实时通知系统

在过去的几周里,我用socket.io构build了一个使用HTML5 Websockets和node.js的小型通知系统。 还有一些事情我还没有解决。 我已经阅读了使用node.js的实时通知应该是最好的性能解决schemevs长轮询等,因为非阻塞I / O操作。 现在假设我们必须通知这个用户的朋友。 就像“我买了一个新的iPhone”。 我如何教node.js实时通知特定用户1:n? 直到知道我只有发送和接收消息1-1通信。 这意味着我必须首先检查facebook api friendlist,并找出哪个facebook_id以某种方式与哪个socket_id连接。 然后检查用户的隐私设置,如果他想接收通知,然后发送并保存到数据库中。 所以对我来说,这似乎不是最有效的解决scheme… 目前, 我会使用mongo-db本地驱动程序的node.js和数据库操作完成由服务器的javascript。 我仍然需要执行facebooks javascript sdk来获取好友列表,但是我会遇到用户隐私设置的问题。 这是不是破坏了非阻塞I / O的所有优点? 你怎么解决这个问题呢? 对我来说,这似乎很复杂。 非常感谢你。

Postgred pg_notify /只有在通道名称小写的情况下才能工作

我读过https://www.postgresql.org/docs/9.6/static/sql-notify.html ,频道名称只是描述为一个“标识符”。 我使用NodeJS和pg https://www.npmjs.com/package/pg来访问postgres。 如果我在两种情况下都使用小写字母,例如pg_notify('foo', …和LISTEN foo , pg_notify LISTEN outcome lower lower works lower upper works upper lower fails upper upper fails 这是一个错误,还是作为一个“标识符”的逻辑结果? (如果是这样,是否应该logging在pg_notify页面上?)

如何在AWS上使用套接字发送通知?

我正在一个需要创build通知系统的项目中。 这是为了在AWS基础架构上运行Pyramid框架创build的网站(我认为服务器是Apache或粘贴,不知道)。 当用户跟随​​某事,所有的朋友应该立即得到一个通知,指出“X现在跟随Y”。 因此,我需要一个WebSocket服务器(也许node.js或socket.io)。 如果我这样做,我将在同一个EC2实例(Web服务器和套接字服务器)上运行两个服务器,但是如何将事件/通知从Web服务器传递到套接字服务器? 我猜中间应该有东西,对吧? AWS可以为我提供的东西。 还是有办法直接提供套接字服务器? 对于这种情况,什么是一个好的方法? 衍生的问题是:哪里是最好的地方获得朋友列表,将收到通知? 它应该是Web服务器还是套接字服务器?

从铁路调用Socket.io Active:loggingcallback或观察者

在LayerVault的好人发布了一个简单的方法来添加现有的Ruby应用程序的“实时”function,而不诉诸客户端MCV或重写整个应用程序在Node.js,前一阵子。 他们的post表明,只要你的rails 模型被更新,你可以更新到所有的客户端[参考1]通过delay_job&Active:Record Observer: class FileObserver < ActiveRecord::Observer observer :lv_file def after_commit(record) record.delay.report_updated end end 和 class LVFile < ActiveRecord::Base def report_updated Messenger.publish_message('file_updated', "file/#{self.id}") end end [参考文献1] http://layervault.tumblr.com/post/31462727280/rails-in-realtime-part-2 从客户端连接到socket.io服务器很容易。 但是我迷失在轨道服务器端如何实现Messenger.publish_message('file_updated', "file/#{self.id}") 。 在post中他们提到了这一点 report_updated方法调用一个单独的Messenger类 (我们的Web应用程序端的Socket.IO接口)的类方法调用,并报告文件已经改变到适当的房间。 但是我仍然不确定如何在Rails中实现Messager类,以便Active:Record Observer能够连接到我的socket.io服务器并发送更新。 [PS]在HN上的对话表明他们利用这个gem gem的维基甚至包括一个简短的演示: require 'SocketIO' client = SocketIO.connect("http://localhost", sync: true) do before_start do on_message {|message| puts message} on_disconnect {puts […]

Firebase通知和用户ID

我正在使用Firebase和Android应用(身份validation,数据库和通知)。 我试图从外部服务器(在nodejs)发送通知,以便用户可以发送通知给其他用户。 所以Android应用程序记住UserId列表(与Firebase身份validation相同的ID),然后将此列表发送到nodejs服务器。 使用此列表,服务器会联系url“ https://fcm.googleapis.com/fcm/send ”,但Firebase向我返回一个InvalidRegistration,因为我发送的是userId列表,而不是由firebase创build的注册标记列表通知。 我应该记住这些令牌还是有办法用用户ID发送通知? (当我尝试一个令牌列表,当然它的工作。) var requestData = { "registration_ids": userIds, //Problem is here "data": { "message": "A message" } }; request({ url: "https://fcm.googleapis.com/fcm/send", method: "POST", json: true, headers: { "Authorization": "key=firebaseKey", "content-type": "application/json", }, json: requestData }, function(err, response, body) { });