Soree nodejs api从消息假脱机队列中检索消息

时间:2018-06-14 08:05:19

标签: node.js message-queue solace

在通过Nodejs api连接到Solace消息持久性队列时,我们遇到错误:

  

{“message”:“此客户端的路由器不支持使用者”,“name”:“OperationError”,“subcode”:3,“reason”:null}

使用Solace Node.js API示例使用soladmin通过Web消息URI连接到持久性消息队列。

 consumer.connect = function (argv) {
        if (consumer.session !== null) {
            consumer.log('Already connected and ready to consume messages.');
            return;
        }
        // extract params
        //if (argv.length < (2 + 3)) { // expecting 3 real arguments
        if (argv.length < 4) {
            consumer.log('Cannot connect: expecting all arguments' +
                '[<protocol://host[:port]>, <client-username>, <message-vpn>, <client-password>].\n' +
                'Available protocols are ws://, wss://, http://, https://');
            process.exit();
        }
        var hosturl = argv[0] //argv.slice(2)[0];
        consumer.log('Connecting to Solace message router using url: ' + hosturl);
        //var usernamevpn = argv.slice(3)[0];
        var username = argv[1]//usernamevpn.split('@')[0];
        consumer.log('Client username: ' + username);
        var vpn = argv[2]//usernamevpn.split('@')[1];
        consumer.log('Solace message router VPN name: ' + vpn);
        var pass = argv[3]//argv.slice(4)[0];
        // create session
        try {
            consumer.session = solace.SolclientFactory.createSession({
                // solace.SessionProperties
                url: hosturl,
                vpnName: vpn,
                userName: username,
                password: pass,
            });
        } catch (error) {
            consumer.log(error.toString());
        }

1 个答案:

答案 0 :(得分:0)

消息... image[j][i] 表示问题出在远程端。

检查客户端配置文件是否允许客户端接收有保证的消息。否则,消息假脱机可能存在问题,导致消息代理无法提供有保证的消息传递服务。

问题中的代码段仅用于启动连接,与连接队列无关。失败的操作应该是

"Consumer is not supported by router for this client"