【发布时间】:2014-08-01 18:39:58
【问题描述】:
我目前正在开发流星中的聊天应用程序。首次进入房间时,您最初会收到 25 条消息。现在,随着新消息进入页面,该值应该相应上升。
到目前为止,我已经尝试了几种不同的方法,但都没有达到预期的效果。
我尝试在客户端设置一个会话变量,当消息计数增加时,它会被动地重新订阅给定的发布。这条路线的问题在于,这会产生不利影响,因为新消息进入页面上的所有消息都需要重新加载,因为订阅。
我最近尝试使用 reactive-publish 包,但运气不佳,因为该包本身有一些各种不利影响。
解决此类问题的最佳方法可能是什么?我希望有一个解决方案,我可以设置某种发布,该发布仅根据我在数据库中为每个用户的数值流式传输消息。
编辑:添加上下文
我在想一些事情
Meteor.publish 'messages', (roomId) ->
dl = // Some value that I pull from the database, which gets updated as new messages come into a room
Messages.find({room: roomId, type: "user_message"}, {sort: {time: -1}, limit: dl, fields: {_id: 1, name: 1, message: 1, room: 1, time: 1, type: 1}})
【问题讨论】:
-
所以当订阅被激活时,您希望过去最多 25 条消息,以及之后的所有新消息?
-
我想要那个房间里最近的 25 条消息,而不是之后的任何消息。