无法使用node-ipc

时间:2019-10-05 13:53:16

标签: node.js ipc node-ipc

我正在使用节点ipc连接两个节点进程。

一个是Web应用程序,它根据用户需求执行逻辑。因此,当用户需要处理一些数据时,它会从该发布请求中,在我连接到node-ipc服务器(称为provider)的服务器上发送该发布请求中的POST请求:

function do_work(lists,callback)
{
        var ipc = require('node-ipc');
            ipc.config.id = 'client';
            ipc.config.maxRetries = 0;

            ipc.connectTo('provider',function(){


            ipc.of.provider.on(
                'disconnect',
                function () {
                    ipc.log('disconnected'.notice);

                }
            );
            ipc.of.provider.on(
                'error',
                function (err) {
                    ipc.log(err);
                    //send error in callback
                    callback(err,null):
                }
            );
            ipc.of.provider.on(
                'result',
                function (data) {
                    //send result in callback
                    callback(null,data):
                }
            );

           var params = JSON.stringify(lists);
           ipc.of.provider.emit(
                    'grab',
                    params
           );
      });
}

我肯定会遇到像20个客户端一样同时调用do_work的情况,因此,据我了解,尽管我将var ipc = require('node-ipc');放在本地,连接对象还是全局的,并且存储在模块深度内

有2个问题:

1)在这种情况下,同时有20个客户端,对do_function的每次调用都会覆盖ipc.of.provider.on侦听器,而我最终陷入混乱吗?我认为是这样,因为ipc连接是全局的。

2)如何为每个客户端创建与提供商的新连接?

0 个答案:

没有答案