The Primus Provider

Primus is a universal wrapper for real-time frameworks that supports Engine.IO, WebSockets, Faye, BrowserChannel, SockJS and Socket.IO.

Server Side Usage

Install the provider module with:

$ npm install feathers-primus ws

ProTip: Here we also installed the ws module which will let us use plain websockets. Typically you need to install your transport module in addition to primus. See the Primus docs for more details.

Now import the module and pass primus(configuration [, fn]) to app.configure.

The following example will start a server on port 3030 and also set up Primus using the ws websocket module.

const feathers = require('feathers');
const primus = require('feathers-primus');

const app = feathers().configure(primus({
  transformer: 'websockets'



The second parameter to the configuration function can be a callback that gets called with the Primus server instance that can be used to register Primus Middleware or Plugins

// Set up Primus with SockJS
  transformer: 'sockjs'
}, function(primus) {
  // Do something with primus object

Middleware and service parameters

Just like REST and SocketIO, the Primus request object has a feathers property that can be extended with additional service params during authorization:

  transformer: 'sockjs'
}, function(primus) {
  // Do something with primus
  primus.use('todos::create', function(socket, done){
    // Exposing a request property to services and hooks
    socket.request.feathers.referrer = socket.request.referrer;

app.use('messages', {
  create(data, params, callback) {
    // When called via Primus:
    params.provider // -> primus
    params.user // -> { name: 'David' }

Client Side Usage

A detailed description of the usage on a client can be found in the Primus Feathers client chapter.

results matching ""

    No results matching ""