最近我实施了
Pusher ChatKit
在我的Vue项目中。
我已经看过了
js documentation
但我对启动应用程序的流程感到困惑,这样我就有了新消息的主动侦听器。
我有5个房间
currentUser
当我这么做的时候
chatManager
.connect()
.then(currentUser => {
})
我得到当前用户,我可以访问他的
rooms
和
roomSubscriptions
.
文档显示我需要订阅每个用户房间,以便设置
onNewMessage()
钩子。
chatManager
.connect()
.then(currentUser => {
this.initiateNewChatState(currentUser)
})
initiateNewChatState(currentUser){
for(let room of currentUser.rooms){
currentUser.subscribeToRoom({
roomId: room.id,
hooks: {
onNewMessage: message => {
console.log(`Received new message ${message.text}`)
this.$store.commit('CHATKIT_message', message)
}
},
messageLimit: 10
})
}
}
2) 但是现在当我只收到一个房间的新消息时,每个房间钩子都会触发钩子(5次)。
chatManager.connect()
因为
currentUser.roomSubscriptions
已经挤满了我上次预订的房间
this.initiateNewChatState()
被调用。
3) 这就引出了一个问题,订阅用户已经加入的用户房间的正确流程是什么,以及如何检测新消息和新房间创建(当有人开始与您聊天时)?
该文档实际上是简化的,不能用于实际案例。有人有这方面的经验吗?
谢谢!