2017-04-03 13 views
-1

NodeJSでOffline.jsを使用するのは苦労しています。私は以下のようにOffline.jsを使いましたが、それは常にcheck()が定義されていないか、または他の方法であることを示しています。ノードでオフライン.jsを使用

import Offline from 'offline-js' 

Offline.options = { 
    checkOnLoad: true, 
    checks: { 
    xhr: { 
     url: 'http://google.com' 
    } 
    } 
} 

Offline.check() 

Offline.Offline.on('up',() => { 
    alert('Up') 
}) 

Offline.Offline.down('down',() => { 
    alert('Down') 
}) 
+2

Offline.jsは、ブラウザでのみ動作するAJAXリクエストをインターセプトすることによって動作します。サーバー側のための別のソリューションを見つけるか作成する必要があります。 –

+1

私はこれをElectronアプリケーションで使用しており、レンダリングプロセスで使用しています。だから、私はうまくいくと思います。しかし、Webpackは、コンパイル中に 'check()'、 'on()'が定義されていないことを示します –

+0

Node.jsの場合、 '' is-online'(https://github.com/sindresorhus/is-online) )。 – robertklep

答えて

0

そこで、[isOnlineパッケージ]を使用して次の解決策を考え出しました。 1としてOffline.jsはノードまたはサーバー側では機能しません。最後の部分で

window.addEventListener('offline',() => { 
    isOnline({timeout: 1000}).then(online => { 
    if (!online) { 
     this.online = false 
    } 
    }) 
}) 

window.addEventListener('online',() => { 
    isOnline({timeout: 1000}).then(online => { 
    if (online) { 
     this.online = true 
    } 
    }) 
}) 

isOnline({timeout: 1000}).then(online => { 
    if (!online) { 
    this.online = false 
    } 
}) 

isOnline()方法があるため、電子アプリが起動したら、使用し、何のLANまたは無線LAN接続がない場合、window. addEventListener('offline')は発生しません。 Vue mounted()メソッドの下にイベントを追加しました。したがって、イベントの外でisOnline()メソッドを再度使用する必要がありました。

関連する問題