semplice protocollo di comunicazione


A chi non è mai capitato di voler trasmettere dei dati(magari con ajax) ed elaborarli poi in javascript?
Bene l’xml è nato per questo però avvolte può risultare complesso e pesante in alcune applicazioni.

Immaginate di dover ricevere/trasmettere diversi tipi di dati, di cui non conoscete il numero, anzi il numero di dati non è uguale per ogni tipo.

Un semplice protocollo consiste nell’inviare tutti i dati in una sola stringa e dividerli da un elemento che faccia da divisore.

ad esempio
numero dati del primo tipo<divisore>numero dati del secondo tipo<divisore>numero dati del terzo tipo<divisore>primo elemento del primo tipo<divisore>…<divisore>ennesimo elemento del primo tipo<divisore>primo elemento del secondo tipo<divisore>…<divisore>ennesimo elemento del secondo tipo<divisore>primo elemento del terzo tipo<divisore>…<divisore>ennesimo elemento del terzo tipo

per far ciò basta fare una semplice funzione javascript come questa:

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
function interpreta(stringa,divisore){
    //dichiarazioni
    var primo_tipo = new Array();
    var secondo_tipo = new Array();
    var terzo_tipo = new Array();
    var i = 0;
    var j = 0;
     
    //analisi stringa
    stringa = stringa.split(divisore);
     
    //primo tipo
    for(i=0,j=3;i<stringa[0];i++,j++)
        primo_tipo[i] = stringa[j];
     
    //secondo tipo
    for(i=0;i<risposta[1];i++,j++)
        secondo_tipo[i] = stringa[j];
     
    //terzo tipo
    for(i=0;i<risposta[2];i++,j++)
        terzo_tipo[i] = stringa[j];
     
    //ritorno
    return new Array(primo_tipo,secondo_tipo,terzo_tipo);
}

Il suo funzionamento è abbastanza semplice e dovrebbe dare spunto ad altre funzioni anche più complesse. Come ad esempio usare lo stesso in modo ricorsivo per indicare nel messaggio il numero dei tipi di dati.

CC BY-SA 4.0 semplice protocollo di comunicazione by cardinale claudio is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.

Lascia un commento