2017-05-10 10 views
1

私はIPFSを初めて使い、JavaScriptにはまったく新しいですが、ブラウザで実行中のuserscript:アドレスが*://*/ipfs/*または*://*/ipns/*の場合、スクリプトが実行され、http://localhost:8080/<IPFS_HASH>に再ルーティングされます。IPFSとJavaScript:localhost:8080からの404ステータスを確認し、ローカルIPFSノードが有効になっているかどうかをブラウザのユーザスクリプトで確認してください。

しかし、ローカルIPFSノードが実行されていないことがあるので、リルートは無害に送られます。なぜなら、localhost:8080では何も起こっていないからです。ですから、私の質問は、ブラウザー内にJSのユーザスクリプト(私の場合は:Safari with Tampermonkey)を持つ方法がある場合、localhost:8080に到達可能かどうかを判断することです。到達可能でない場合、スクリプトは何も行いません。到達可能であれば、リダイレクトを開始します。

ローカルIPFSノードがアクティブな場合は、localhost:

を:8080リターンが

http://i.imgur.com/S1vDQLy.png

...と、ノードがアクティブでないとき、Safariがそこに何かを達することができない "404ページが見つかりません"

http://i.imgur.com/Q2TF2MQ.png

JavaScriptがcurl -o /dev/null --silent --head --write-out "%{http_code}\n" localhost:8080に相当するのは、最も簡単なことです。「404」が返された場合、IPFSがアクティブになり、スクリプトが再ルーティングされます。 "000"を返した場合、IPFSは非アクティブであり、スクリプトは何も行いません。

どうすればこのJavaScriptを利用できますか?ご協力ありがとうございました。

答えて

2

XMLHttpRequestを使用してサーバーに照会できます。例:here

var xhr = new XMLHttpRequest(); 

xhr.onreadystatechange = function() { 
     if (xhr.readyState == 4) { 
       // Request finished; either succesful or via timeout 
       alert(xhr.status); 
     } 
}; 

xhr.open("POST", "http://localhost:8080", true); 
xhr.timeout = 4000; // Set timeout to 4 seconds (4000 milliseconds) 
xhr.ontimeout = function() { alert("Timed out!!!"); } 
xhr.send(""); 
+0

Githubのユーザーは既に私に迅速な解決策を与えていました。 https://github.com/JayBrown/IPRedirect/blob/master/IPRedirect.js#L19-L24を参照してください... IPFS WebUIのpngファイルの1つをチェックしています – JayB

関連する問題