Het is misschien niet 100% een programmeervraag, maar ik weet niet goed waar het anders te plaatsen.
Ik heb een ESP8266 die via een websocket datapunten uitstuurt naar een webpagina om realtime data te plotten in een grafiek.
Nu werkt dit goed, alleen lijkt Chrome een enorme vertraging te hebben?
Als ik op mijn scherm IE en Chrome naast elkaar zet dan zit er op Chrome een vertraging van 5-10 seconden.
Vanuit de server side worden dingen wel goed uitgestuurd, want ik gebruik een gyroscoop als sensor en als ik daaraan draai zijn de updates in de grafiek in IE instant, maar in Chrome zit daar dus een serieuze vertraging op. Hoe langer ik de webpagina openlaat, hoe meer de vertraging. Als ik de pagina vernieuw is de delay eerst weer heel even weg.
Plaatje: (tellers bovenaan: links aantal ontvangen messages, rechts gemiddelde delta tijd in ms tussen de messages).

Full size
Iemand een idee wat hier aan de hand kan zijn?
De websocket client code:
Ik heb een ESP8266 die via een websocket datapunten uitstuurt naar een webpagina om realtime data te plotten in een grafiek.
Nu werkt dit goed, alleen lijkt Chrome een enorme vertraging te hebben?
Als ik op mijn scherm IE en Chrome naast elkaar zet dan zit er op Chrome een vertraging van 5-10 seconden.
Vanuit de server side worden dingen wel goed uitgestuurd, want ik gebruik een gyroscoop als sensor en als ik daaraan draai zijn de updates in de grafiek in IE instant, maar in Chrome zit daar dus een serieuze vertraging op. Hoe langer ik de webpagina openlaat, hoe meer de vertraging. Als ik de pagina vernieuw is de delay eerst weer heel even weg.
Plaatje: (tellers bovenaan: links aantal ontvangen messages, rechts gemiddelde delta tijd in ms tussen de messages).

Full size
Iemand een idee wat hier aan de hand kan zijn?
De websocket client code:
JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| var socket = new WebSocket('ws://'+document.location.host+'/ws',['arduino']); var timestamp = 0; var timestamp_prev = 0; var debug_time = new Date().getTime(); var debug_time_prev = new Date().getTime(); var debug_mean = 0; var debug_num = 0; socket.onmessage = function (event) { debug_num++; debug_time = new Date().getTime(); debug_mean = ((debug_num-1)*debug_mean + (debug_time-debug_time_prev))/debug_num; debug_time_prev = debug_time; $('.subtitle').html(debug_num.toString() + ' ' + debug_mean.toString()); var data = JSON.parse(event.data); if (data.id == "heading") { timestamp = data.time; update_chart(chart_1,timestamp,Number(data.value)); if ((timestamp-timestamp_prev)>40) { chart_1.update(0); timestamp_prev = timestamp; } } }; |
[ Voor 13% gewijzigd door Bio op 29-12-2017 16:00 ]