Meteor 流星:检查是否存在互联网连接

Meteor 流星:检查是否存在互联网连接,meteor,Meteor,我试过使用Meteor.status(),但它不可靠。我用的是标准流星。有没有办法使用jQuery或JS来检查用户是否连接到internet(就在我运行某个函数时)既然你提到你正在使用meteor,可以放心地假设你甚至没有想到像IE 8这样的旧浏览器。下面将检查用户是否有活动连接或是否连接到internet var online=navigator.online 从规范来看,这个问题有着非常广阔的视角,因为它实际上取决于你所指的互联网。它可以是连接到服务器,只连接到局域网或路由器 在您的问题中,

我试过使用Meteor.status(),但它不可靠。我用的是标准流星。有没有办法使用jQuery或JS来检查用户是否连接到internet(就在我运行某个函数时)

既然你提到你正在使用meteor,可以放心地假设你甚至没有想到像IE 8这样的旧浏览器。下面将检查用户是否有活动连接或是否连接到internet

var online=navigator.online


从规范来看,这个问题有着非常广阔的视角,因为它实际上取决于你所指的互联网。它可以是
连接到服务器
只连接到局域网或路由器

在您的问题中,我可以看出您的意思是“在Meteor中,如何检查客户端和服务器之间的连接。”

您可以简单地使用reactive
Meteor.status().status
来跟踪Meteor客户端和服务器之间的连接状态

根据
状态
可以

  • 已连接
  • 连接
  • 失败
  • 等待
  • 离线
  • 我将演示一段代码,向您展示如何检查服务器客户端连接状态

    步骤1

    在项目中安装包
    smowden:offline js

    这将使您能够专业地处理UI上的断开连接情况,使您的客户端不会惊慌失措

    步骤2

    在你的页面js里面

    import './YOUR_PAGE.html';
    
    var run = () => {
       // this is supported by smowden:offline-js
       if (Offline.state === 'up'){
          Offline.check();
       }
     }
    
    Template.YOUR_PAGE.onCreated(function(){
      this.isOnline = new ReactiveVar(0);
      this.autorun(() => { 
        // to track status reactively
        if (Meteor.status().status === "connected") {
          console.log('connected.');
           this.isOnline.set(2);
        }
        else if (Meteor.status().status === "connecting") {
          console.log('connecting.');
           this.isOnline.set(1);
        }
        else {
            console.log('not connected.');
            this.isOnline.set(0);
        }
      });
    });
    
    Template.YOUR_PAGE.onRendered(function(){
      // run method 'run' at an interval of 5 seconds
      setInterval(run, 5000);
    });
    
    Template.YOUR_PAGE.helpers({
      connectivityStatus(statusId){
        // Simple check for equality
        return Template.instance().isOnline.get() == statusId;
      }
    });
    
    你的页面内.html

    <template name="YOUR_PAGE">
        <body>
            {{#if connectivityStatus 2}}
                <span class="label label-success">Connected</span>
            {{else}}
              {{#if connectivityStatus 1}}
                <span class="label label-success">Reconnecting</span>
              {{else}}
                <span class="label label-success">Disconnected</span>
              {{/if}}
            {{/if}}
        </body> 
    </template> 
    
    
    {{#如果连接状态为2}
    有联系的
    {{else}
    {{{#如果连接状态为1}}
    重新连接
    {{else}
    断开的
    {{/if}
    {{/if}
    
    步骤3

  • 如何签入开发模式?如果服务器已启动,只需更改一些代码并保存,您的UI将反映遇到的各种状态的更改
  • 如何检查生产模式?若服务器已启动,只需拔出
    局域网接线
    ,您的UI将反映遇到的各种状态的更改
    顺便说一句,为什么你需要检查互联网连接是否存在,因为Meteor本身拥有一流的离线支持,在客户端有minimongo。我需要这样做的原因是决定是否显示mailchimp订阅表单。我不想在internet连接断开时显示它。
    navigator.onLine
    只检查与任何LAN或路由器的连接。所以,这不是一个简单的答案。