我在我的应用程序中做的是使用setInterval来激活JavaScript函数并调用服务器,以检查是否有新的通知,如果是,则检查样本。以下是其中一个通知的代码:
function notify_messages(){
$.ajax({
type: "POST",
url: "/notifyMessage",
success: function(data){
if(data.received == true){
for(var i=0; i < data.messages.length; i++){
new PNotify({
desktop: {
desktop: true,
title: 'New Message',
text: 'Have a new message from'+ data.mensajes[i] +'',
}
});
new PNotify({
title: '<a href="/Message/'+ data.id[i] +'" class="color-azul-link pointer">New message</a>',
text: 'You have a new message from <a class="pointer" href="/Message/'+ data.id[i] +'"><strong class="color-blue-link">'+ data.message[i] +'</strong></a>',
addclass: 'dark',
icon: "glyphicon glyphicon-comment",
type: 'info',
delay: 10000000000,
styling: 'bootstrap3',
hide: true
});
}
}
}
});
}
setInterval(notify_messages, 5000);
在本地服务器上工作正常,当它在生产服务器上加载时,如果很多人同时使用它,会有一个时间会产生太多请求而服务器不支持它并且它会丢失。总的来说,每个用户在8到9个请求之间发送或多或少的间隔为5秒。如果某人有某种解决方案,那将非常有帮助。