实际上,我对用于完成此任务的技术比真正构建聊天系统更感兴趣(这是一个很好的具体示例)。我看到两个部分:
- 客户需要在某个地方注册,然后我们需要每个客户的唯一 ID。
- 服务器应该只能从另一个客户端向客户端发送一些东西。
对于第一部分,我不知道如何获得这个唯一的 id。可能使用新的流星身份验证套件?
对于第二部分,我考虑构建一个每个客户端的集合,其中一个且只有一个客户端可以访问,但这听起来很沉重,而且我认为这并不是 Meteor 的最佳实践。然后我想在消息中添加“发件人”和“字段”(参见常规聊天示例)。这样做可以,但我想知道他们没有隐私。自定义发布是否会返回过滤后的查找,或者这样做也有风险,即其他客户也会获得这些项目吗?就像是:
Meteor.publish("message", function (clientID) {
return Messages.find({"dest":clientID }, {});
});