L'idea è di implementare un servizio Web QBWC utilizzando Node.js che può servire più richieste in ingresso in modo asincrono. Attualmente sto cercando in qbws che è un servizio web Node.js per QuickBooks Desktop Web Connector. Qualche idea su come estenderla per supportare un'architettura asincrona per i metodi di servizio?
Grazie in anticipo!Come servizio asincrono di più client QBWC con Node.js
risposta
Il modulo soapsupports asynchronous function calls rende questo facile da fare. Per utilizzare lo stesso modello come my other answer, ecco come si farebbe che:
var soap = require('soap');
var yourService = {
QBWebConnectorSvc: {
QBWebConnectorSvcSoap: {
serverVersion: function (args, callback) {
// serverVersion code here
callback({
serverVersionResult: { string: retVal }
});
},
clientVersion: function (args, callback) {
//clientVersion code here
callback({
clientVersionResult: { string: retVal }
});
},
// and all other service functions required by QBWC
}
}
};
ci sono due differenze:
- Ogni firma del metodo ha un ulteriore parametro
callback
- Non c'è
return
, che è gestito dacallback()
invece.
Attualmente non ho un ambiente adatto per testare questo, ma ho creato a client to imitate QuickBooks Web Connector e ha funzionato bene. La conversione dei metodi qbws in asincrono ha permesso di servire più client contemporaneamente (incluso un client QBWC legittimo).
Questo è fantastico! .. testato con più client reali di QBWC .. funziona bene con le chiamate asincrone ad altri server ... grazie mille! – newbie
@newbie: hai un codice di esempio in github o open source che posso dare un'occhiata? Sto anche sviluppando un'app simile da integrare con QuickBooks Desktop. – WABBIT0111
@newbie se hai questo frammento di codice su Github, quindi fornisci il link in modo che diamo un'occhiata, sto anche lavorando alla stessa cosa. –
È nella mia lista dei desideri modificare qbws per utilizzare callback asincroni per ciascun metodo, ma attualmente non dispongo di un ambiente di test adeguato per assicurarsi che funzioni correttamente. Ho lavorato per risolverlo, ma per ora dovrai modificarlo in base alle tue esigenze. Tuttavia, non dovrebbe essere così difficile; sentiti libero di aprire un problema su GitHub se resti bloccato da qualche parte. – JohnB
@JohnB vorresti avere qualche codice demo su come funziona qbws? – WABBIT0111
@ WABBIT0111 il codice su GitHub è funzionale, controllare la sezione [Utilizzo] (https://github.com/johnballantyne/qbws#usage). Se hai qualche domanda al riguardo, sentiti libero di aprire un problema su GitHub. – JohnB