如何使用Node.js异步地为多个QBWC客户端提供服务

5

这个想法是使用Node.js实现一个QBWC Web服务,可以以异步方式处理多个传入请求。目前我正在研究qbws,这是一个适用于QuickBooks Desktop Web Connector的Node.js Web服务。有什么想法可以扩展它来支持服务方法的异步架构吗?
提前感谢!


我的愿望清单上有一个项目,即修改qbws以使用每个方法的异步回调,但我目前没有合适的测试环境来确保它正常工作。我一直在努力解决这个问题,但现在您需要根据自己的需求进行修改。不过,这应该不难;如果您在某个地方卡住了,请随时在GitHub上提出问题。 - JohnB
@JohnB,你有qbws如何工作的演示代码吗? - WABBIT0111
@WABBIT0111,GitHub上的代码是可用的,请查看使用说明。如果您对此有任何疑问,请随时在GitHub上提出问题。 - JohnB
1个回答

4

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

        }
    }
};

有两个不同之处:

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

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


太棒了!已经与多个实际QBWC客户端进行了测试,使用异步调用其他服务器正常工作。非常感谢! - newbie
2
@新手:你有在GitHub或开源项目中的示例代码吗?我也正在开发一个类似的应用程序,以与QuickBooks桌面版集成。 - WABBIT0111
@newbie 如果你在 Github 上有这段代码片段,请提供链接,以便我们查看。我也在做同样的事情。 - Code_Crash

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接