laravel中的实时通知

时间:2018-04-11 17:05:13

标签: javascript ajax laravel-5 notifications

我在我的应用程序中做的是使用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秒。如果某人有某种解决方案,那将非常有帮助。

0 个答案:

没有答案