PhantomJS 如何通过 RabbitMQ 进行通信?
How can PhantomJS communicate through RabbitMQ?
我是 RabbitMQ 的新手。我使用 PhantomJS 并使用 JavaScript 来做事。现在,我需要将一些结果发送到 RabbitMQ,以便使用另一个脚本读取它们。我的意思是,我希望 PhantomJS 与 RabbitMQ 通信。发送一些消息并从队列中读取一些消息。那可能吗? PhantomJS 是否可以通过它与 RabbitMQ 通信?
PhantomJS 只是另一个浏览器。这正是 RabbitMQ Web-Stomp Plugin 的用途。它基于 SockJS,它在浏览器和服务器之间提供 Web 套接字连接。如果网络套接字不可用,则存在跨浏览器回退。 PhantomJS 从版本 2 开始支持网络套接字。
如果您没有 open
PhantomJS 中的页面,那么您需要 运行 使用 --local-to-remote-url-access=true
选项。我假设 sockjs-0.3.js 和 stomp.js 在脚本目录中。
page.injectJs('sockjs-0.3.js');
page.injectJs('stomp.js');
page.evaluate(function(){
var ws = new SockJS('http://127.0.0.1:15674/stomp');
window.client = Stomp.over(ws);
...
});
这必须在页面上下文中 运行(在 page.evaluate()
内)。所以这就是为什么 client
是全局 window
属性 的原因,这样您就可以在随后的 page.evaluate()
调用中获得对客户端的引用。您可以使用 window.callPhantom()
和 page.onCallback
事件处理程序触发从页面上下文到外部的调用。
我是 RabbitMQ 的新手。我使用 PhantomJS 并使用 JavaScript 来做事。现在,我需要将一些结果发送到 RabbitMQ,以便使用另一个脚本读取它们。我的意思是,我希望 PhantomJS 与 RabbitMQ 通信。发送一些消息并从队列中读取一些消息。那可能吗? PhantomJS 是否可以通过它与 RabbitMQ 通信?
PhantomJS 只是另一个浏览器。这正是 RabbitMQ Web-Stomp Plugin 的用途。它基于 SockJS,它在浏览器和服务器之间提供 Web 套接字连接。如果网络套接字不可用,则存在跨浏览器回退。 PhantomJS 从版本 2 开始支持网络套接字。
如果您没有 open
PhantomJS 中的页面,那么您需要 运行 使用 --local-to-remote-url-access=true
选项。我假设 sockjs-0.3.js 和 stomp.js 在脚本目录中。
page.injectJs('sockjs-0.3.js');
page.injectJs('stomp.js');
page.evaluate(function(){
var ws = new SockJS('http://127.0.0.1:15674/stomp');
window.client = Stomp.over(ws);
...
});
这必须在页面上下文中 运行(在 page.evaluate()
内)。所以这就是为什么 client
是全局 window
属性 的原因,这样您就可以在随后的 page.evaluate()
调用中获得对客户端的引用。您可以使用 window.callPhantom()
和 page.onCallback
事件处理程序触发从页面上下文到外部的调用。