Skip to content

Commit

Permalink
Merge 5bd5748 into 622c123
Browse files Browse the repository at this point in the history
  • Loading branch information
derekcollison committed Dec 8, 2018
2 parents 622c123 + 5bd5748 commit 64c07a1
Show file tree
Hide file tree
Showing 22 changed files with 779 additions and 78 deletions.
2 changes: 1 addition & 1 deletion Makefile
@@ -1,6 +1,6 @@

lint:
./node_modules/.bin/eslint ./test ./lib/nats.js ./examples ./benchmark
./node_modules/.bin/eslint ./test/*.js ./lib/nats.js ./benchmark ./examples/*

test:
@NODE_ENV=test ./node_modules/.bin/mocha -c\
Expand Down
41 changes: 39 additions & 2 deletions README.md
Expand Up @@ -4,7 +4,7 @@ A [Node.js](http://nodejs.org/) client for the [NATS messaging system](https://n

[![license](https://img.shields.io/github/license/nats-io/node-nats.svg)](https://www.apache.org/licenses/LICENSE-2.0)
[![Build Status](https://travis-ci.org/nats-io/node-nats.svg?branch=master)](https://travis-ci.org/nats-io/node-nats)
[![Coveralls](https://img.shields.io/coveralls/github/nats-io/node-nats/master.svg)]()
[![Coveralls](https://img.shields.io/coveralls/github/nats-io/node-nats/master.svg)](https://coveralls.io/r/nats-io/node-nats?branch=master)
[![npm](https://img.shields.io/npm/v/nats.svg)](https://www.npmjs.com/package/nats)
[![npm](https://img.shields.io/npm/dm/nats.svg)](https://www.npmjs.com/package/nats)

Expand Down Expand Up @@ -147,7 +147,44 @@ var tlsOptions = {
var nc = nats.connect({port: TLSPORT, tls: tlsOptions});

```
## Authentication

## New Authentication (Nkeys and User Credentials)
See examples for more usage.
```javascript
// Simple connect using credentials file. This loads JWT and signing key
// each time that NATS connects.
var nc = NATS.connect('connect.ngs.global', NATS.creds("./myid.creds");

// Setting nkey and signing callback directly.
var nc = NATS.connect(url, {
nkey: 'UAH42UG6PV552P5SWLWTBP3H3S5BHAVCO2IEKEXUANJXR75J63RQ5WM6',
sigCB: function(nonce) {
return sk.sign(nonce);
}
});

// Setting user JWT statically.
var nc = NATS.connect(url, {
userJWT: myJWT,
sigCB: function(nonce) {
return sk.sign(nonce);
}
});

// Having user JWT be a function that returns the JWT. Can be useful for
// loading a new JWT.
var nc = NATS.connect(url, {
userJWT: function() {
return myJWT;
},
sigCB: function(nonce) {
return sk.sign(nonce);
}
});

```
## Basic Authentication
```javascript

// Connect with username and password in the url
Expand Down
26 changes: 16 additions & 10 deletions examples/node-pub
Expand Up @@ -3,22 +3,28 @@
/* jslint node: true */
'use strict';

var nats = require('nats').connect();
var nats = require('nats');
var argv = require('minimist')(process.argv.slice(2));

nats.on('error', function(e) {
console.log('Error [' + nats.options.url + ']: ' + e);
process.exit();
});

var subject = process.argv[2];
var msg = process.argv[3] || '';
var url = argv.s || nats.DEFAULT_URI;
var creds = argv.creds;
var subject = argv._[0];
var msg = argv._[1] || '';

if (!subject) {
console.log('Usage: node-pub <subject> [msg]');
console.log('Usage: node-pub [-s server] [--creds file] <subject> [msg]');
process.exit();
}

nats.publish(subject, msg, function() {
// Connect to NATS server.
var nc = nats.connect(url, nats.creds(creds));

nc.publish(subject, msg, function() {
console.log('Published [' + subject + '] : "' + msg + '"');
process.exit();
});

nc.on('error', function(e) {
console.log('Error [' + nats.options.url + ']: ' + e);
process.exit();
});
36 changes: 36 additions & 0 deletions examples/node-req
@@ -0,0 +1,36 @@
#!/usr/bin/env node

/* jslint node: true */
'use strict';

var nats = require('nats');
var argv = require('minimist')(process.argv.slice(2));

var url = argv.s || nats.DEFAULT_URI;
var creds = argv.creds;
var max = argv.n || 1;
var subject = argv._[0];
var msg = argv._[1] || '';

if (!subject) {
console.log('Usage: node-req [-s server] [--creds file] [-n max_responses] <subject> [msg]');
process.exit();
}

console.log("url is " + url);

// Connect to NATS server.
var nc = nats.connect(url, nats.creds(creds));

nc.request(subject, msg, {max:max}, function(response) {
console.log('Received: ' + response);
});

nc.on('unsubscribe', function(e) {
process.exit();
});

nc.on('error', function(e) {
console.log('Error [' + nc.options.url + ']: ' + e);
process.exit();
});
37 changes: 22 additions & 15 deletions examples/node-sub
Expand Up @@ -3,27 +3,34 @@
/* jslint node: true */
'use strict';

var nats = require('nats').connect();
var nats = require('nats');
var argv = require('minimist')(process.argv.slice(2));

nats.on('error', function(e) {
console.log('Error [' + nats.options.url + ']: ' + e);
var url = argv.s || nats.DEFAULT_URI;
var creds = argv.creds;
var subject = argv._[0];

if (!subject) {
console.log('Usage: node-sub [-s server] [--creds file] <subject>');
process.exit();
}

// Connect to NATS server.
var nc = nats.connect(url, nats.creds(creds));

nc.on('connect', function() {
nc.subscribe(subject, function(msg) {
console.log('Received "' + msg + '"');
});
console.log('Listening on [' + subject + ']');
});

nats.on('close', function() {
console.log('CLOSED');
nc.on('error', function(e) {
console.log('Error [' + nats.options.url + ']: ' + e);
process.exit();
});

var subject = process.argv[2];

if (!subject) {
console.log('Usage: node-sub <subject>');
nc.on('close', function() {
console.log('CLOSED');
process.exit();
}

console.log('Listening on [' + subject + ']');

nats.subscribe(subject, function(msg) {
console.log('Received "' + msg + '"');
});

0 comments on commit 64c07a1

Please sign in to comment.