一个信号创建通知 REST API 有时会失败
One signal create notification REST API fails sometimes
我正在使用 oneSignal
推送通知 node.js
。我正在使用创建通知 api 向用户发送通知,但我不知道为什么它有时会起作用,有时会出现超时错误
sendNotificationToUser(data) {
try {
var notificationData = {}
notificationData.app_id = oneSignalAppId
notificationData.headings = {
en: "Heading"
}
notificationData.contents = {
en: data.message
}
notificationData.include_player_ids = [data.deviceId]
var headers = {
"Content-Type": "application/json; charset=utf-8"
}
var options = {
host: "onesignal.com",
port: 443,
path: "/api/v1/notifications",
method: "POST",
headers: headers
}
var https = require("https")
var req = https.request(options, function (res) {
res.on("data", function (data1) {
console.log("Response:")
console.log(JSON.parse(data1))
})
})
req.on("error", function (e) {
console.log("ERROR:")
console.log(e)
})
req.write(JSON.stringify(notificationData))
req.end()
} catch (err) {
console.log("err in notification", err)
}
}
这个 api 有 50% 的时间和 50% 的时间响应超时错误,即使所有输入都是正确的
ERROR:
{
Error: connect ETIMEDOUT 104.18.225.52:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '104.18.225.52',
port: 443
}
一个简单的解决方案是直接点击工作 ip,你可以通过包括
主持人:'onesignal.con' 在 headers 和
主机:选项中的“104.18.226.52”
这解决了我的问题
了解更多关于如何在 https 请求中使用主机指定 ip
去这里 HTTPS request, specifying hostname and specific IP address
我正在使用 oneSignal
推送通知 node.js
。我正在使用创建通知 api 向用户发送通知,但我不知道为什么它有时会起作用,有时会出现超时错误
sendNotificationToUser(data) {
try {
var notificationData = {}
notificationData.app_id = oneSignalAppId
notificationData.headings = {
en: "Heading"
}
notificationData.contents = {
en: data.message
}
notificationData.include_player_ids = [data.deviceId]
var headers = {
"Content-Type": "application/json; charset=utf-8"
}
var options = {
host: "onesignal.com",
port: 443,
path: "/api/v1/notifications",
method: "POST",
headers: headers
}
var https = require("https")
var req = https.request(options, function (res) {
res.on("data", function (data1) {
console.log("Response:")
console.log(JSON.parse(data1))
})
})
req.on("error", function (e) {
console.log("ERROR:")
console.log(e)
})
req.write(JSON.stringify(notificationData))
req.end()
} catch (err) {
console.log("err in notification", err)
}
}
这个 api 有 50% 的时间和 50% 的时间响应超时错误,即使所有输入都是正确的
ERROR:
{
Error: connect ETIMEDOUT 104.18.225.52:443
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '104.18.225.52',
port: 443
}
一个简单的解决方案是直接点击工作 ip,你可以通过包括 主持人:'onesignal.con' 在 headers 和 主机:选项中的“104.18.226.52”
这解决了我的问题
了解更多关于如何在 https 请求中使用主机指定 ip 去这里 HTTPS request, specifying hostname and specific IP address