socket.io v2.x with a wildcard event
JavaScript
Clone or download
hden Merge pull request #50 from sepehr-laal/master
Added docs for using this middleware with a namespace
Latest commit 972b73b Jul 6, 2018

README.md

socketio-wildcard

Build Status Dependencies devDependencies npm js-standard-style

npm

Socket.io with a wildcard event.

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

Tested with node.js v4.x, v5.x, v6.x, v7.x, v8.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