Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including with all npm packages installed. Try it out:

var socketIoEmitter = require("")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors. v3.1.1

Build Status NPM version allows you to communicate with servers easily from processes.

How to use

var io = require('')({ host: '', port: 6379 });
  io.emit('time', new Date);
}, 5000);
// Different constructor options.

//1. Initialize with host:port string
var io = require('')("localhost:6379")
// 2. Initlize with host, port object.
var io = require('')({ host: '', port: 6379 });
// 3. Can use other node_redis compatible client eg; ioredis.

var Redis = require("ioredis");
var redis = new Redis();
var io = require('')(redis);

// Make the emitter works with redis clustered environment.
var Cluster = new Redis.Cluster([
        host: "localhost",
        port: 6379
        host: "localhost",
        port: 6378
var io = require('')(Cluster);


  var io = require('')({ host: '', port: 6379 });

  // sending to all clients
  io.emit('broadcast', /* ... */);

  // sending to all clients in 'game' room'game').emit('new-game', /* ... */);

  // sending to individual socketid (private message)<socketid>).emit('private', /* ... */);

  var nsp = io.of('/admin');

  // sending to all clients in 'admin' namespace
  nsp.emit('namespace', /* ... */);

  // sending to all clients in 'admin' namespace and in 'notifications' room'notifications').emit('namespace', /* ... */);

Note: acknowledgements are not supported

Error handling

Access the redis to subscribe to its error event:

var emitter = require('')("localhost:6379");

emitter.redis.on('error', onError);

function onError(err){


Emitter(client[, opts])

client is a node_redis compatible client that has been initialized with the return_buffers option set to true. This argument is optional.

The following options are allowed:

  • key: the name of the key to pub/sub events on as prefix (
  • host: host to connect to redis on (localhost)
  • port: port to connect to redis on (6379)
  • socket: unix domain socket to connect to redis on ("/tmp/redis.sock")

Emitter(clientUri[, opts]

Same as above, but clientUri is a string of the format host:port to connect to redis to.


If you don't want to supply a redis client object, and want to intiialize one for you, make sure to supply the host and port options.



Specifies a specific room that you want to emit to.


Specifies a specific namespace that you want to emit to.




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free