Stream.io: 如何从服务器获取用户未读消息数
Stream.io: How to get a users unread messages count from the server
有什么方法可以从服务器查询所有频道的用户未读消息总数吗?
我知道可以使用 setUser 从客户端执行此操作,但这不适合在服务器端场景中使用。我正在使用 nodejs,如有任何建议,我们将不胜感激。
谢谢,
马克
这就是我从服务器获取所有渠道的所有消息的方式。我是用JS写的,希望对你有帮助:
async function listUnreadMessages(user) {
const serverClient = new StreamChat(api_key, stream_secret, options)
await serverClient.setUser(
{
id: `${user.id}`,
name: `${user.full_name}`,
image: user.profile_image
},
user.chat_token
)
const filter = { members: { $in: [`${user.id}`] } }
const sort = { last_message_at: -1 }
const channels = await serverClient.queryChannels(filter, sort, {
watch: true
})
let unreadList = {}
const unreads = await Promise.all(
channels.map((c) => {
unreadList[c.id] = c.countUnread()
return c.countUnread()
})
)
serverClient.disconnect()
return unreadList
}
有什么方法可以从服务器查询所有频道的用户未读消息总数吗?
我知道可以使用 setUser 从客户端执行此操作,但这不适合在服务器端场景中使用。我正在使用 nodejs,如有任何建议,我们将不胜感激。
谢谢, 马克
这就是我从服务器获取所有渠道的所有消息的方式。我是用JS写的,希望对你有帮助:
async function listUnreadMessages(user) {
const serverClient = new StreamChat(api_key, stream_secret, options)
await serverClient.setUser(
{
id: `${user.id}`,
name: `${user.full_name}`,
image: user.profile_image
},
user.chat_token
)
const filter = { members: { $in: [`${user.id}`] } }
const sort = { last_message_at: -1 }
const channels = await serverClient.queryChannels(filter, sort, {
watch: true
})
let unreadList = {}
const unreads = await Promise.all(
channels.map((c) => {
unreadList[c.id] = c.countUnread()
return c.countUnread()
})
)
serverClient.disconnect()
return unreadList
}