Thanks @ClearMemory041063 for giving attention to my problem, and for the codes to try. You are not testing them on an esp8266, are you ? The last code makes 11,5kb minified, it does not fit, it interrupt the transfer from the IDE. So I had to remove the connecting code and reduce the data to send to 3kb. I cannot send more at once without getting memory errors.
Unfortunately, at the end, the result with ws is as slow as with http: 2.5sec for 3kb (see the code below). Maybe because ws server is built on top of an http server.
var n = 5, chk=3*1024;
var tdata=new Uint8Array(chk);
var i;
for(i=0;i<1024;i++){
tdata[i]=0x30;
tdata[i+1024]=0x31;
// tdata[i+1024*2]=0x32;
// tdata[i+1024*3]=0x33;
// tdata[i+1024*4]=0x34;
}//next i
var page = '<html><body><script>var ws;setTimeout(function(){';
page += 'ws = new WebSocket("ws://" + location.host + "/my_websocket", "protocolOne");';
page += 'var t=(new Date()).getTime();ws.onmessage = function (event) { console.log("t:",(new Date()).getTime()-t,"MSG:",event.data); };';
page += 'setTimeout(function() { ws.send("Hello to Espruino!"); }, 1000);';
page += '},1000);</script></body></html>';
function onPageRequest(req, res) {
res.writeHead(200, {'Content-Type': 'text/html'});
res.end(page);
}
var server = require('ws').createServer(onPageRequest);
server.listen(80);
server.on("websocket", function(ws) {
ws.on('message',function(msg) { print("[WS] "+JSON.stringify(msg)); });
var t=getTime();
ws.send(E.toString(tdata));
print("n=",n,"t:",(getTime()-t).toFixed(3),"sec");
var inter=setInterval(function(){
var l=ws.socket.dSnd.length;
print("t",getTime()-t,"l",l);
if(l===0) clearInterval(inter);
},100);
// ws.send("Hello from Espruino!");
});
_____ _
| __|___ ___ ___ _ _|_|___ ___
| __|_ -| . | _| | | | | . |
|_____|___| _|_| |___|_|_|_|___|
|_| http://espruino.com
1v95.155 Copyright 2017 G.Williams
Espruino is Open Source. Our work is supported
only by sales of official boards and donations:
http://espruino.com/Donate
Flash map 4MB:512/512, manuf 0xef chip 0x4016
>
=undefined
n= 5 t: 0.018 sec
t 0.12109500000 l 2984
t 0.22103200000 l 2984
t 0.32097500000 l 2716
t 0.420522 l 2716
t 0.52113300000 l 2448
t 0.62102500000 l 2448
t 0.72063500000 l 2180
t 0.82108700000 l 2180
t 0.921061 l 1912
[WS] "Hello to Espruino!"
t 1.020693 l 1644
t 1.12096200000 l 1644
t 1.22103700000 l 1376
t 1.32081700000 l 1376
t 1.42095800000 l 1108
t 1.52093400000 l 1108
t 1.62055600000 l 840
t 1.72074900000 l 840
t 1.82093100000 l 840
t 1.92100099999 l 572
t 2.020918 l 572
t 2.12098700000 l 304
t 2.220733 l 304
t 2.320561 l 36
t 2.42057400000 l 36
t 2.52083200000 l 0
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
Thanks @ClearMemory041063 for giving attention to my problem, and for the codes to try. You are not testing them on an esp8266, are you ? The last code makes 11,5kb minified, it does not fit, it interrupt the transfer from the IDE. So I had to remove the connecting code and reduce the data to send to 3kb. I cannot send more at once without getting memory errors.
Unfortunately, at the end, the result with ws is as slow as with http: 2.5sec for 3kb (see the code below). Maybe because ws server is built on top of an http server.