Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
Simple example of subscribing to Rancher change events
npm install ws
Create an API key in Rancher and start up with:
node socket.js address.of.rancher:8080 access_key secret_key project_id
var WebSocket = require('ws');
var host = process.argv[2];
var accessKey = process.argv[3];
var secretKey = process.argv[4];
var projectId = process.argv[5];
var url = 'ws://'+accessKey+':'+secretKey+'@'+host+'/v1/projects/'+projectId+'/subscribe?eventNames=resource.change';
var socket = new WebSocket(url);
socket.on('open', function() {
console.log('Socket opened');
socket.on('message', function(messageStr) {
var message = JSON.parse(messageStr);
if ( === 'ping' )
else if ( === 'resource.change' && )
var resource =;
var info = 'name=' + ', state='+resource.state;
if ( resource.transitioning !== 'no' )
info += ', transitioning='+resource.transitioning + ', message='+resource.transitioningMessage
console.log(message.resourceType, message.resourceId, 'changed:', info);
socket.on('close', function() {
console.log('Socket closed');
Copy link

arkka commented Aug 15, 2016

Exactly that's the problem @vincent99. It's seems the python library for websocket-client did not support it, and using base64 as my authorization token on header fix everything.

Thank you 👍

Copy link

alfrye commented Dec 6, 2018

I am using rancher 2.11 and after I get a few pings back from rancher the websocket closes with error code 1006. Any ideas?

I accessing the websocket from a node.js server

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment