async/await:connect([url, [socketOptions]])
callback:connect([url, [socketOptions]], function(err, conn) {…})
url:
- 套接字选项:amqp://guest:guest@localhost:5672,amqp://管理员账号@管理员密码@xxx.xxx.xxx:5672适用在远端机器
- AMQP URL:amqp://localhost,本地机器缺少参数会自动补齐
socketOptions:
- frameMax,连接上允许最大帧的大小,0表示没有限制,
- channelMax,最大通道数,默认0,最大2^16-1
- heartbeat,心跳间隔,默认未0
- locale,语言环境,RabbitMQ只能用en_US
```javascript // callback new Promise((resolve,reject)=>{ const options = { frameMax: 0,// 连接上允许最大帧的大小,0表示没有限制 channelMax: 0,// 最大通道数,默认0,最大2^16-1 heartbeat: 0,// 心跳间隔,默认未0 locale:’en_US’,// 语言环境,RabbitMQ只能用en_US }; amqp.connect(‘url’,(error1,options,connection){ if(error1) throw reject(error1); connection.creatcChannel(error2,channel){// async/await
(async () => {
try {
const options = {
frameMax: 0,// 连接上允许最大帧的大小,0表示没有限制
channelMax: 0,// 最大通道数,默认0,最大2^16-1
heartbeat: 0,// 心跳间隔,默认未0
locale:'en_US',// 语言环境,RabbitMQ只能用en_US
};
const connection = await amqp.connect('url',options)
const channel = connection.createChannel();
return { connection, channel }
} catch (e) {
console.log(e)
}
})()
} }) })if(error2) throw reject(error2);
return resolve({connection,channel})
```