JSON-RPC - come si può fare un ID univoco?
-
10-10-2019 - |
Domanda
Quando si chiama un servizio di JSON-RPC qual è il modo più comune per generare un ID univoco da un client JavaScript?
DOMANDA REVISIONE:
In genere, un JSON-RPC client implementa un parametro di conteggio id
JavaScript (ad esempio, se l'ultima richiesta era id=1
, e non ha ricevuto una risposta indietro, la richiesta successiva è id=2
. Se la richiesta con id=1
ha risposto, il richiesta successiva può essere id=1
di nuovo). Sono interessato a capire come la gente di solito implementano questa.
Soluzione
non descrivono l'universo in cui questo deve essere unico.
Se vuoi dire assolutamente unico, allora si sta parlando di un UUID .
Se avete bisogno di qualcosa di unico per l'endpoint per impedire la memorizzazione nella cache sul lato client, quindi questo sarà sufficiente
var unique = new Date().getTime();
Se avete bisogno di qualcosa di diverso da questi due allora avrete bisogno di essere più specifico.
Modifica
Forse qualcosa che sembra un po 'come questo
jsonRpcClient = function()
{
var requestStack = [null];
this.makeRequest = function()
{
var id = this.getAvailableSlot();
requestStack[id] = new this.request( id, arguments );
}
this.getAvailableSlot: function ()
{
for ( var i = 0; i < requestStack.length: i++ )
{
if ( null == this.requestStack[i] )
{
return i;
}
}
return i;
}
this.request: function( id, args )
{
// request stuff here
// pass id and whatever else to jsonRpcClient.handleResponse()
}
this.handleResponse: function( id )
{
var request = requestStack[id];
requestStack[id] = null;
// Do whatever with request
}
};