Идея состоит в том, чтобы реализовать веб-службу QBWC с использованием Node.js, которая может асинхронно обслуживать несколько входящих запросов. В настоящее время я изучаю qbws, который представляет собой веб-службу Node.js для QuickBooks Desktop Web Connector. Любые идеи о том, как я могу расширить это, чтобы поддерживать асинхронную архитектуру для методов службы?
Заранее спасибо!
Как асинхронно обслуживать несколько клиентов QBWC с помощью Node.js
comment
В моем списке желаний изменить qbws для использования асинхронных обратных вызовов для каждого метода, но в настоящее время у меня нет подходящей среды тестирования, чтобы убедиться, что он работает правильно. Я работал над решением этой проблемы, но сейчас вам нужно изменить его в соответствии с вашими потребностями. Хотя это не должно быть так сложно; просто не стесняйтесь открывать вопрос на GitHub, если вы где-то застряли.
- person JohnB   schedule 30.09.2015
comment
@JohnB у вас есть демо-код о том, как работают qbws?
- person WABBIT0111   schedule 08.12.2015
comment
@ WABBIT0111 код на GitHub работает, проверьте раздел Использование. Если у вас есть какие-либо вопросы по этому поводу, не стесняйтесь открывать вопрос на GitHub.
- person JohnB   schedule 08.12.2015
Ответы (1)
Модуль soap поддерживает асинхронные вызовы функций что делает это легко. Чтобы использовать тот же шаблон, что и мой другой ответ, вот как бы вы это сделали:
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
}
}
};
Есть два отличия:
- Каждая сигнатура метода имеет дополнительный параметр
callback
- Нет
return
, вместо этого обрабатываетсяcallback()
.
В настоящее время у меня нет подходящей среды для тестирования, но я создал клиент для имитации веб-коннектора QuickBooks, и он работал нормально. Преобразование методов qbws в асинхронные позволило ему одновременно обслуживать несколько клиентов (включая одного законного клиента QBWC).
person
JohnB
schedule
30.09.2015
Это потрясающе!.. протестировано с несколькими реальными клиентами QBWC.. отлично работает с асинхронными вызовами на другие серверы.. Огромное спасибо!
- person newbie; 30.09.2015
@newbie: У вас есть пример кода в github или с открытым исходным кодом, который я могу посмотреть? Я также разрабатываю аналогичное приложение для интеграции с QuickBooks Desktop.
- person WABBIT0111; 08.12.2015
@newbie, если у вас есть этот фрагмент кода на Github, дайте ссылку, чтобы мы посмотрели, я тоже работаю над тем же.
- person Code_Crash; 26.10.2016