Frage

Eine einfache Funktion, die eine JSON -Zeichenfolge aus einem Datenbankergebnis dient, wird mit Socket.Broadcast () an den Client ausgestrahlt. Was ich tun möchte, aktualisieren Sie die Client -Seite, wenn sich der Wert ändert. Derzeit verwendet die Broadcast -Funktion SetTimeout, um alle 1 Sekunde kontinuierlich zu übertragen. Wenn Sie sich die Anfrageprotokolle in Firebug ansehen, gibt es eine kontinuierliche Antwort, was ich nicht für eine gute Sache halte ...

Sie fragen sich nur, was die beste Praxis für die Verwendung von Sockets ist? Werden diese Anfragen etwas töten? Würde eine Lösung Zeitstempel oder ähnliches vergleicht, um unnötig zu senden, Anfragen zu senden?

//server-side
function checkData() {
    client.query('SELECT * FROM data', function selectCb(err, data) {
        socket.broadcast(processData(data));
        setTimeout(checkData, 1000);
    });
}

//client-side
socket.on('message', function(data) {
    $('#container').html(JSON.stringify(JSON.parse(data), null));
});

//sample data
[{
    "type":"Statistic1",
    "value":65.2,
    "timestamp":"2011-04-29T16:22:39.000Z"
},{
    "type":"Statistic2",
    "value":18.6,
    "timestamp":"2011-04-29T16:22:39.000Z"
}]

Danke für Ihre Hilfe!

War es hilfreich?

Lösung

Dies hängt von den Daten ab, die Sie senden. Einer der Vorteile von Sockets besteht darin, dass Sie auswählen können, wann Daten an die Kunden gesendet werden sollen. Speichern Sie einige der GET -Anfragen und nur über Sendung von Daten, wenn Sie etwas Neues senden müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top