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