Shr*_*rix 1 rabbitmq react-native
我正在尝试将rabbitmq 集成到本机应用程序上
参考这个库:https : //www.npmjs.com/package/react-native-rabbitmq
我尝试使用适当的配置属性创建一个 Connection 对象。但是当我试图检查let connection = new Connection(config);我收到以下结果时:
Connection {rabbitmqconnection: Object, callbacks: Object, connected: false}在连接对象中。如您所见,它给出了connected: false
我已经提到在节点端创建 rabbit mq 服务器:https : //www.rabbitmq.com/tutorials/tutorial-one-javascript.html来创建一个正常工作的节点 rabbit mq 服务器。现在我需要在客户端接收消息
我确信配置属性和rabbitmq 服务器运行正常,因为使用相同的我可以从单独的节点服务器连接到rabbit mq。试图在这两个添加记录器connection.on('error')和中connection.on('connected'),但没有得到任何日志
无法理解问题出在哪里。有人可以帮助或建议一个更好的图书馆吗?需要在 react-native 上集成 RabbitMQ
const config = {
host: '192.0.0.1', //dummy values
port: 5672,
username: 'username',
password: 'password',
virtualhost: 'vhost'
};
const connection = new Connection(config);
console.log('connection config changed');
console.log(connection);
connection.on('error', (event) => {
console.log('error');
console.log(event);
});
connection.on('connected', (event) => {
const queue = new Queue(this.connection, {
name: 'queue_name',
passive: false,
durable: true,
exclusive: false,
consumer_arguments: { 'x-priority': 1 }
});
const exchange = new Exchange(connection, {
name: 'exchange_name',
type: 'direct',
durable: true,
autoDelete: false,
internal: false
});
queue.bind(exchange, 'queue_name');
// Receive one message when it arrives
queue.on('message', (data) => {
console.log('Single message received');
console.log(data);
});
// Receive all messages send with in a second
queue.on('messages', (data) => {
console.log('Multiple messages received');
console.log(data);
});
});
Run Code Online (Sandbox Code Playgroud)
小智 5
我已经能够将 rabbitmq 连接到我的 react-native 应用程序。我设法在 Windows 10 PC 上执行此操作。
第 1 步:如果您安装了适用于 windows 的 rabbitmq,那么您就可以开始使用了,否则,请访问https://www.rabbitmq.com/install-windows.html。访问安装文件中的sbin文件夹(在程序文件下),复制路径,例如 ( C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.4\sbin) 并将其添加到您的环境变量中(转到此电脑/我的电脑,右键单击并选择属性,单击
高级系统设置,选择环境变量,在
系统变量下,突出显示路径并单击编辑,单击新建,然后将复制的路径粘贴进去,然后单击确定. 上述步骤可帮助您在 cmd 上运行 rabbitmq 命令
第 2 步:访问 Roaming 文件夹中的 Rabbitmq 文件夹,
C:\Users\PcName\AppData\Roaming\RabbitMQ
Run Code Online (Sandbox Code Playgroud)
打开enabled_plugins文件并输入以下代码:
[rabbitmq_management].
Run Code Online (Sandbox Code Playgroud)
保存并退出
打开config文件夹并在里面创建一个rabbitmq.config文件,
输入以下代码片段:
[
{rabbit, [
{tcp_listeners, [{"127.0.0.1", 5672},
{"::1", 5672}]}
]}
].
Run Code Online (Sandbox Code Playgroud)
保存并关闭文件
第 3 步:访问您的命令行(以管理员身份运行)从命令行的任何位置运行以下命令以设置用户名、密码和管理员权限:
rabbitmqctl add_user dummy dummy
rabbitmqctl set_user_tags dummy administrator
rabbitmqctl set_permissions -p / dummy ".*" ".*" ".*"
Run Code Online (Sandbox Code Playgroud)
之后运行以启用rabbitmq管理:
rabbitmq-plugins enable rabbitmq_management
Run Code Online (Sandbox Code Playgroud)
运行完成后,运行以下命令:
rabbitmq-server
Run Code Online (Sandbox Code Playgroud)
它应该显示“已完成 n 个插件(其中 n 是一个数字)”
第 4 步:打开您的App.js文件(在您的 react-native 文件夹中)并复制以下代码:
C:\Users\PcName\AppData\Roaming\RabbitMQ
Run Code Online (Sandbox Code Playgroud)
主机 ip (10.0.2.2) 是默认的 android ip(对于那些运行 android 模拟器的人)。
连接代码必须放在 componentWillMount() 函数中,因为它是异步的。
第 5 步:启动您的 android 模拟器并构建您的 react-native 应用程序。android 屏幕上应该没有错误。
第 6 步:通过以下链接在浏览器上访问 rabbitmq 管理:
localhost:15672
Run Code Online (Sandbox Code Playgroud)
使用您的用户名和密码登录( 在这种情况下,用户名:dummy,密码:dummy),您应该在 Connections 下看到一个连接,在 Queues 下看到一个 queue(queue_name)
干杯。
| 归档时间: |
|
| 查看次数: |
2101 次 |
| 最近记录: |