cpos
Chromium page opener server
Last updated 6 years ago by nacholibre .
MIT · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install cpos 
SYNC missed versions from official npm registry.

Build Status ##Introduction With cpos you can start Chromium browser with socketIO server and emit messages from any socketIO client (browser for example) to open specific URL and return some data back like page load time or page screenshot.

cpos uses node-webkit.

Install it with npm install cpos

##Usage cpos requires libuv0 and xvfb-run. If you don't have libuv0, you can symlink libuv0 to libuv1. Example in Arch Linux: sudo ln -s /usr/lib/libudev.so /usr/lib/libudev.so.0

####Example

'use strict';

var cpos = require('cpos');
var io = require('socket.io-client');

var chromiumServer = new cpos.Server();

chromiumServer.listen(3000, 'localhost', function() {
    console.log('Chromium browser socketIO server has started');

    var client = io.connect('http://localhost:3000');
    client.on('connect', function() {

        client.emit('openURL', {'url': 'http://google.com'}, function(data) {
            console.log('Google takes %s milliseconds to load', data.pageLoadTimeMS);

            client.close();
            chromiumServer.close();
        });
    });
});

##API ###Class: cpos.Server ####server.listen(port, hostname, [callback]) Starts the node-webkit Chromium app using xvfb-run. The app itself starts socket.io server listening for openURL messages.

callback is called when the applications is ready to receive openURL requests. ####server.close() Terminates the server. ####socket.emit('openURL', options, callback); available options are

  • url: url for opening
  • width: window width (default: 1280)
  • height: window height (default: 768)
  • capture: return screenshot as base64 encoded string (default: false)
  • timeout: max timeout in seconds when opening url (default: 15 seconds)

callback is called with

  • pageLoadTimeMS: page load time in milliseconds
  • screenshot: base64 encoded screenshot of the loaded page (only if capture is set to true)
  • loaded: True or False, false can be if the timeout is reached

openURL opens new tab in Chromium and after page has loaded the tab is closed and the callback is executed, which means you can open pages in parallel.

You can use node async to limit max parallel tasks.

Current Tags

  • 0.1.9                                ...           latest (6 years ago)

10 Versions

  • 0.1.9                                ...           6 years ago
  • 0.1.8                                ...           6 years ago
  • 0.1.7                                ...           6 years ago
  • 0.1.6                                ...           6 years ago
  • 0.1.5                                ...           6 years ago
  • 0.1.4                                ...           6 years ago
  • 0.1.3                                ...           6 years ago
  • 0.1.2                                ...           6 years ago
  • 0.1.1                                ...           6 years ago
  • 0.1.0                                ...           6 years ago
Maintainers (1)
Downloads
Today 0
This Week 0
This Month 3
Last Day 0
Last Week 1
Last Month 3
Dependencies (12)
Dev Dependencies (0)
None
Dependents (1)

Copyright 2014 - 2016 © taobao.org |