gpt4 book ai didi

kuzzle - 使用 Hook 或订阅在 Kuzzle 中发送推送通知的更好方法是什么?

转载 作者:行者123 更新时间:2023-12-04 15:06:00 25 4
gpt4 key购买 nike

我正在使用 Kuzzle 作为我的实时聊天应用程序的后端。当用户在移动聊天应用程序中处于离线状态时,发送推送通知的更好方法是什么?

<强>1。使用自定义插件 Hook

// check for every message in chat 
this.hooks = {
'document:afterCreate': (request) => {

if (request.input.resource.collection == 'messages') {

let message = request.input.body;
this.context.accessors.sdk.document.get('now', 'user_sessions', message.otherUserId).then((userSession) => {

if (!userSession._source.isOnline) {
userSession._source.devices.forEach(device => {
// send push notification
});
}
})
}
}
}

<强>2。 Kuzzle 服务器启动后所有用户的每位用户订阅

const app = new Backend('kuzzlebackend')

app.start()
.then(async () => {
// Application started

// Loops through all users and adds their subscriptions to Kuzzle

foreach(user in users) {
app.sdk.realtime.subscribe('now', 'messages', { ‘otherUserId' : user._id }, async (notification: Notification) => {

this.context.accessors.sdk.document.get('now', 'user_sessions', user._id).then((userSession) => {

if (!userSession._source.isOnline) {
userSession._source.devices.forEach(device => {
// send push notification
});
}
})
})
}
})

最佳答案

你应该使用 hook mechanismgeneric:document:afterWrite 上创建新消息时向离线用户发送通知的事件。

每次使用 Document Controller 操作之一编写文档时都会触发此事件,对于 m* 操作系列,您将能够批量处理文档而不是一个接一个地处理文档.

关于kuzzle - 使用 Hook 或订阅在 Kuzzle 中发送推送通知的更好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66096097/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com