Skip to content

hden/socketio-wildcard

Repository files navigation

socketio-wildcard

Build Status Dependencies devDependencies npm js-standard-style codecov FOSSA Status

npm

Socket.io with a wildcard event.

Works with Socket.io v1.x - v2.x.

Tested with node.js v8.x - v12.x.

Sunsetting

As of Socket.io v2.0.4 (commit), you can use a socket middleware to catch every incoming Packet, which satisfies most of socketio-wildcard's use cases.

io.on('connection', (socket) => {
  socket.use((packet, next) => {
    // Handler
    next();
  });
});

Installation

npm install --save socketio-wildcard

Usage

Server

var io         = require('socket.io')();
var middleware = require('socketio-wildcard')();

io.use(middleware);

io.on('connection', function(socket) {
  socket.on('*', function(packet){
    // client.emit('foo', 'bar', 'baz')
    packet.data === ['foo', 'bar', 'baz']
  });
});

io.listen(8000);

Server (with a namespace)

var io         = require('socket.io')();
+var nsp        = io.of('/namespace');
var middleware = require('socketio-wildcard')();

-io.use(middleware);
+nsp.use(middleware);

-io.on('connection', function(socket) {
+nsp.on('connection', function(socket) {
  socket.on('*', function(packet){
    // client.emit('foo', 'bar', 'baz')
    packet.data === ['foo', 'bar', 'baz']
  });
});

io.listen(8000);

Client

var io = require('socket.io-client');
var socket = io('http://localhost');
// piggyback using the event-emitter bundled with socket.io client
var patch = require('socketio-wildcard')(io.Manager);
patch(socket);

socket.on('*', function(){ /* … */ })

Changelog

[2.0.0] - 2016-05-23

  • no breaking change
  • update test dependencies for socket.io v2

[0.3.0] - 2015-12-21

  • allow custom event emitter
  • support socket.io client

[0.2.0] - 2015-11-29

  • wildcard listener for all events get called first (@Michael77)
  • removed coffee-script dependency

Licence

MIT

License

FOSSA Status