从后端触发事件而没有来自用户的接收请求

时间:2016-05-21 21:49:23

标签: javascript express

我正在学习node express的过程,我想创建一个使用Weather Underground API的应用程序,并通过短信或电子邮件使用发送网格或其他服务通知极端天气的用户。我不确定服务器如何发起通知,并且正在寻找有关用于启动电子邮件或SMS的技术的建议。

1 个答案:

答案 0 :(得分:1)

您可以使用此request npm包,使用此包,您可以创建获取发布请求。收到天气api的请求并检查天气是否严重。如果天气严重,您可以通过socket.io向客户发送消息。

  

来自请求npm包文档的示例代码。我希望你明白这一点。你可以做类似的事情。请参阅文档。

var request = require('request');
request('https://www.wunderground.com/weather/api/', function (error, response, body) {
if (!error && response.statusCode == 200) {
    console.log(response);
    if(response.critical){ 
      io.to(socketid).emit('message', 'message content');
    }
   }
});
  

你可以将它放在 setInterval 函数中,每隔10秒或更长时间调用一次这个方法并更新客户端。

     

你需要存储客户端的套接字ID以推送到该特定客户端。如果你想向所有人发出你可以只做socket.emit所以每个人都收到通知并访问socket.io里面的快递路由引用这个stack-overflow question