【问题标题】:How to asynchronously service multiple QBWC clients with Node.js如何使用 Node.js 异步服务多个 QBWC 客户端
【发布时间】:2015-09-30 16:05:24
【问题描述】:

这个想法是使用 Node.js 实现一个 QBWC Web 服务,它可以以异步方式服务多个传入请求。目前我正在研究qbws,它是 QuickBooks Desktop Web 连接器的 Node.js Web 服务。关于如何扩展它以支持服务方法的异步架构的任何想法?
提前致谢!

【问题讨论】:

  • 我希望修改 qbws 以对每个方法使用异步回调,但我目前没有合适的测试环境来确保它正常工作。我一直在努力解决这个问题,但现在你需要修改它以满足你的需要。不过应该没那么难。如果您遇到问题,请随时在 GitHub 上提出问题。
  • @JohnB 你有一些关于 qbws 工作原理的演示代码吗?
  • @WABBIT0111 GitHub 上的代码可以正常工作,请查看Usage section。如果您对此有任何疑问,请随时在 GitHub 上提出问题。

标签: node.js asynchronous quickbooks qbwc


【解决方案1】:

soap 模块 supports asynchronous function calls 让这很容易做到。要使用与my other answer 相同的模板,您可以这样做:

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

        }
    }
};

有两个区别:

  1. 每个方法签名都有一个额外的callback 参数
  2. 没有return,而是由callback()处理。

我目前没有合适的环境来测试它,但我创建了a client to imitate QuickBooks Web Connector,它运行良好。将 qbws 方法转换为异步允许它同时为多个客户端提供服务(包括一个合法的 QBWC 客户端)。

【讨论】:

  • 这太棒了!..用多个实际的 QBWC 客户端进行了测试..与对其他服务器的异步调用工作正常..非常感谢!
  • @newbie:你有 github 或开源的示例代码,我可以看看吗?我也在开发一个类似的应用程序来与 QuickBooks Desktop 集成。
  • @newbie 如果你在 Github 上有这个代码 sn-p ,然后提供链接以便我们看看,我也在做同样的事情。
猜你喜欢
  • 2015-06-26
  • 2013-03-25
  • 2011-08-14
  • 2012-10-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-20
  • 1970-01-01
相关资源
最近更新 更多