gpt4 book ai didi

javascript - 在刷新浏览器页面之前, meteor 流无法正常工作

转载 作者:IT王子 更新时间:2023-10-29 06:07:42 27 4
gpt4 key购买 nike

我正在使用流在两个应用程序之间发送通知。应用程序通过集群通过 redis 进行通信。每当我将一些通知从一个应用程序推送到另一个应用程序时,它都不起作用。但是当我刷新浏览器并尝试时,它起作用了。

你能告诉我问题是什么吗?我的代码如下:

应用 1 代码

function sendMessage(message,date,toUserId,fromUserId,jobId){
ChatStream.emit(toUserId,message,date,toUserId,fromUserId,jobId);
}

ChatStream.on(Meteor.userId(),function(message,date,toUserId,fromUserId,jobId){
var formatDate = moment(date).fromNow();
var index = ClientChat.find().count();
var chatObj = {
from:fromUserId,
message:message,
date:formatDate,
jobId:jobId,
index:index
}
//ClientChat.insert({from:fromUserId,message:message,date:formatDate,jobId:jobId,index:index})
ClientChat.insert(chatObj);
Session.set('receivedPing',chatObj);
})

应用2

function sendMessage(message,date,toUserId,fromUserId,jobId){
ChatStream.emit(toUserId,message,date,toUserId,fromUserId,jobId);
}

ChatStream.on(Meteor.userId(),function(message,date,toUserId,fromUserId,jobId){
ClientChat.insert({from:fromUserId,message:message,date:date,jobId:jobId})
})

服务器文件夹中的 Cluster.js

Meteor.startup(function(){
Meteor.Cluster.init();
Meteor.Cluster.sync(ChatStream,LocalNotificationStream);
})

lib文件夹

ChatStream = new Meteor.Stream('chatStream');

我用的包是arunoda streams http://arunoda.github.io/meteor-streams/

最佳答案

我找到了一个解决方案。这是因为,代码

ChatStream.on(Meteor.userId(),function(message,date,toUserId,fromUserId,jobId){
ClientChat.insert({from:fromUserId,message:message,date:date,jobId:jobId})
})

在应用程序刚刚启动且用户尚未登录时正在运行。因此我确保仅在用户通过此操作登录时运行此代码

Deps.autorun(function(){
if(Meteor.userId()){
ChatStream.on(Meteor.userId(),function(message,date,toUserId,fromUserId,jobId){
ClientChat.insert({from:fromUserId,message:message,date:date,jobId:jobId})
})
}
})
}
});

关于javascript - 在刷新浏览器页面之前, meteor 流无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32506302/

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