node.js - 如何将 Javascript 连接到远程 IBM MQ?
问题描述
我正在使用 LoopBack(一个 Javascript 框架)制作 API,使用 IBM MQ 推送和获取消息。
我遵循了这个 tut:Nodejs 和 MQ
我可以使用本地队列管理器来完成,但我不知道如何连接到远程队列管理器。
那么,谁能解释我如何做到这一点?
谢了。
解决方案
我可以使用来自@JoshMc 评论的那个链接来做到这一点。
这是我的代码,它工作正常:
module.exports = function (server) {
var mq = require('ibmmq');
var MQC = mq.MQC; // Want to refer to this export directly for simplicity
// The queue manager and queue to be used. These can be overridden on command line.
var qMgr = "QM1";
var qName = "soa.log";
var mqmd = new mq.MQMD(); // Defaults are fine.
var pmo = new mq.MQPMO();
var cd = new mq.MQCD();
var cno = new mq.MQCNO();
cd.ConnectionName = "localhost(1414)";
cd.ChannelName = "CHAN1";
var csp = new mq.MQCSP();
cno.ClientConn = cd;
cno.Options = MQC.MQCNO_CLIENT_BINDING; // use MQCNO_CLIENT_BINDING to connect as client
function putMessage(hObj) {
var msg = Buffer.from(JSON.stringify(coff));
// Describe how the Put should behave
pmo.Options = MQC.MQPMO_NO_SYNCPOINT |
MQC.MQPMO_NEW_MSG_ID |
MQC.MQPMO_NEW_CORREL_ID;
mq.Put(hObj,mqmd,pmo,msg,function(err) {
if (err) {
console.log(formatErr(err));
} else {
console.log("MQPUT successful");
}
});
}
mq.Connx(qMgr, cno, function (err, hConn) {
if (err) {
console.log((err));
} else {
console.log("MQCONN to %s successful ", qMgr);
// Define what we want to open, and how we want to open it.
var od = new mq.MQOD();
od.ObjectName = qName;
od.ObjectType = MQC.MQOT_Q;
var openOptions = MQC.MQOO_OUTPUT;
mq.Open(hConn, od, openOptions, function (err, hObj) {
if (err) {
console.log(formatErr(err));
} else {
console.log("MQOPEN of %s successful", qName);
putMessage(hObj);
}
// cleanup(hConn, hObj);
});
}
});
};
推荐阅读
- python - 如何在python中将数字分类
- javascript - 阻止 Key 执行其默认操作 - TamperMonkey JavaScript
- java - 如何序列化类,然后用 Java 中同一类的修改版本读取它们
- sql - 按两行分组并减去一个数字字段
- sql - 查询以计算多列中的中值传递值
- kpi - 我需要在 NetSuite 中创建 KPI。“每周收到的项目 KPI”
- php - 使用 PHP 修复 CSS 类
- r - 将列表转换为数据框。auto.arima 函数的一个案例
- sql-server - Laravel 关系总是返回空数组
- entity-framework - 没有这样的表:AspNetUsers