Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/457.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从JavaScript订阅RabbitMQ以接收推送消息_Javascript_Node.js_Rabbitmq_Using - Fatal编程技术网

从JavaScript订阅RabbitMQ以接收推送消息

从JavaScript订阅RabbitMQ以接收推送消息,javascript,node.js,rabbitmq,using,Javascript,Node.js,Rabbitmq,Using,我需要订阅从JavaScript(在浏览器窗口上运行)到RabbitMQ通道的通道,以便可以接收RabbitMQ发布到该通道的消息 我想知道如何在不使用任何JS库(如Node.JS或其他)的情况下实现这一点 我使用的是RabbitMQ 3.6.3和Erlang 17.0 我想知道我如何在不使用任何JS库的情况下做到这一点 你不能 RabbitMQ需要一个库——要么自己编写(我不推荐这样做),要么使用现有库 但无论如何,你不应该从浏览器连接。浏览器应该与web服务器通信,web服务器应该连接到Ra

我需要订阅从JavaScript(在浏览器窗口上运行)到RabbitMQ通道的通道,以便可以接收RabbitMQ发布到该通道的消息

我想知道如何在不使用任何JS库(如Node.JS或其他)的情况下实现这一点

我使用的是RabbitMQ 3.6.3和Erlang 17.0

我想知道我如何在不使用任何JS库的情况下做到这一点

你不能

RabbitMQ需要一个库——要么自己编写(我不推荐这样做),要么使用现有库

但无论如何,你不应该从浏览器连接。浏览器应该与web服务器通信,web服务器应该连接到RabbitMQ


使用WebSocket或服务器端事件从web服务器到浏览器进行通信。

NodeJ完全可以处理RabbitMQ消息并将其转发到web浏览器。您应该使用的节点模块称为AMQPSK。我看到太多的网站已经在谈论NodeJS了。但我想知道为什么没有图书馆我们就做不到?我的意思是,使用普通的老JavaScript——至少是为了理解目的。等等,你知道NodeJS是服务器端的吗?我希望您可以在浏览器端使用普通Javascript,但要使用Javascript服务器端获取MQTT数据包,您必须使用像NodeJS这样的技术。如果您只需要直接从客户端检索消息(我不建议您这样做),我不确定这是否容易做到……我启用了rabbitmq_web_stomp,并尝试使用类似“ws://127.0.0.1:5762/ws”的WebSocket进行连接-但获取错误为:WebSocket连接到“ws://localhost:5672/ws”失败:WebSocket握手期间出错:net::ERR_connection_RESET(匿名函数)@RabbitMQTester.html:12OK。请考虑这一点:在浏览器上运行的应用程序的前端需要数据,这可能有更长的处理时间。因此,它建立了对RabbitMQ队列的订阅(使用WebSocket),并将需要一些数据的请求发布到Web服务器,当它准备好时,将其推送到队列。你是说这是一种错误的方法吗?在这种情况下,我还可以尝试什么?这不是一种错误的方法,但就我从您以前的消息中了解到的情况而言,您希望通过客户端Javascript从浏览器直接访问RabbitMQ消息。这就是我和德里克·贝利没有建议你做的。当然,使用WebSocket在Web服务器上轮询与RabbitMQ对话的消息是一个很好的解决方案:)是的,我的解释不正确。多亏了你,德里克和亚历克斯。我可以使用WebSocket连接到RabbitMQ,并订阅我感兴趣的队列。它很好用。