sleepyhollow-phantom
Version:
PhantomJS binder for two-way communication with Node.js
63 lines (41 loc) • 1.51 kB
Markdown
sleepyhollow-phantom
====================
PhantomJS binder for two-way communication with Node.js. An IPC library in two modules, used in conjunction with [sleepyhollow-node](https://github.com/weisjohn/sleepyhollow-node), via `stdin` and `stderr`. No `socket.io` or server-page hacks required.
To receive messages from Node.js, require and invoke `sleepyhollow`. This returns an `EventEmitter` instance which allows you to implement your own message passing system.
```
// this is PhantomJS code, not Node.js code!
var sleepyhollow = require('../index.js');
var mrhyde = sleepyhollow();
mrhyde.on('render', function(url) {
var page = require('webpage').create();
page.open(url, function(status) {
page.render(url.replace(/[\/:]/g, "") + ".png");
mrhyde.emit("rendered");
page.close();
});
});
mrhyde.on('end', function() {
phantom.exit();
});
```
[](https://github.com/weisjohn/sleepyhollow-node#usage).
Arguments:
1. event - String: name of the event
2. param - Mixed: optional, any `JSON.stringify()`-able value is supported
Returns: null
Example:
```javascript
myhyde.emit("payload", { prop : page.size });
```
Arguments:
1. event - String: name of the event
2. listener - Function(Mixed): receives a optional `JSON.stringify()`-able value
Example:
```javascript
myhyde.on('render', function(obj) {
page.render("tmp");
})
```