サーバー上で常に更新され、ファイルに書き込まれるデータ(100ミリ秒ごと)があります。クライアント側に転送する必要があります。これはsetInterval関数を使用して行います。同じ間隔)、このJSONファイルをチェックして、それが問題の正しい解決策であるかどうかを確認できません。JSのサーバーから常時データを更新するには?
サーバ側コード:
function SerialPortStart(COM, Input){
console.log(COM, Input);
var serialPort = new SerialPort(COM, {
parser: SerialPort.parsers.readline('\n'),
baudrate: +Input || 9600
});
serialPort.on('data', function (data) {
thermodata = data.toString();
console.log(data);
fs.writeFileSync(__dirname +'/views/cockpit.json',JSON.stringify(thermodata));
});
}。
クライアント側コード:あなたはAJAXの分野では、もはや今ある
function SerialPortStart(){
var xhr = new XMLHttpRequest();
setInterval(function() {
xhr.open('GET', 'cockpit.json', true);
xhr.send();
xhr.onreadystatechange = function() {
if(this.status == 200) {
var data = JSON.parse(xhr.responseText);
console.log(data);
obj = data.split(';');
if(cockpitNum[3] != null){
$('header .mainBlock1 .cockpit .elements .blockHaw .cirle').css({
transform: 'rotate('+(obj[cockpitNum[3]]) +'deg)'
}); }
}, 50);
感謝を。プロトコルWebSocketを見つけましたが、socket.io以外にもこの場合は何をお勧めしますか? –
私はそれを聞いた、AFAIKそれはいいです。あなたは面白いものは必要ありません。ソケットについては、 – Martijn
@Martijn - OPはクライアントとしてブラウザを使用しています。ブラウザからソケットを使用することはできません。ブラウザでの選択肢は、Ajax(http)接続またはwebSocket接続です。 – jfriend00