
Research
Security News
Lazarus Strikes npm Again with New Wave of Malicious Packages
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
@feathersjs/socket-commons
Advanced tools
Shared functionality for websocket providers like @feathers/socketio and @feathersjs/primus. Only intended to be used internally by other Feathers real-time providers.
@feathersjs/socket-commons
contains internal shared functionality for Feathers real-time providers (currently Socket.io and Primus).
lib/client.js
is a base socket service client
lib/index.js
returns a configurable function and requires the following options:
done
- A Promise that resolves once the real-time protocol server has been set upemit
- The name of the method to emit data to a socket ('emit'
for Socket.io and 'send'
for Primus)socketKey
- A string or ES6 Symbol which stores the actual socket connectiongetParams
- A function that returns the Feathers connection options for a socketChannels provide channel functionality for bi-directional Feathers service providers. It is e.g. used by the Socket.io and Primus provider to quickly determine what messages to send to connected clients.
const channels = require('@feathersjs/socket-commons/lib/channels');
app.channel(... names)
Returns a named or combined channel object.
const channel = app.channel('test'); // return a `test` channel
channel.join(connection); // join a channel
channel.leave(connection); // leave a channel
channel.filter(connection => {}) // return a new channel with filtered connections
channel.length // return the number of connections
channel.connections // all connections in this channel
const combined = app.channel('test', 'other'); // return a combined channel
combined.join(connection); // join the `test` and `other` channel
combined.leave(connection); // leave the `test` and `other` channel
channel.filter(connection => {}) // return a new channel with filtered connections (connections will only be iterated once)
combined.length // return the number of connections
combined.connections // all connections in the combined channel (if a connection is in multiple channels it will only show once)
app.service('servicename').publish(event, callback)
, app.service('servicename').publish(callback)
Register a publishing callback for a service and event (or all events) that returns a (named or combined) channel.
app.use('/test', {
create(data) {
return Promise.resolve(data);
}
});
// `created` event for the `test` service
app.service('test').publish('created', (data, hook) =>
app.channel('*')
);
// `created` event for the `test` service, sending different data to two different channels
app.service('test').publish('created', (data, hook) => {
return [
app.channel('admins'),
app.channel('users').send(_.omit(data, 'groups', 'email'))
];
});
// All events for all services
app.publish((data, hook) =>
app.channel('*')
);
// All `created` events for all services
app.publish('created', (data, hook) =>
app.channel('*')
);
// All events for `test` service
app.service('test').publish((data, hook) =>
app.channel('*')
);
app.on('publish', function(event, channel, hook) {})
An event that will be sent every time a service event that has connections to publish to happens. channel
is a combined channel with all connections to publish the event to.
Note: If there are no channels or connections the
publish
event will not be sent.
app.on('publish', (event, channel, hook) => {
channel.connections.forEach(connection => {
// Do something with `connection`
});
});
Copyright (c) 2015
Licensed under the MIT license.
FAQs
Shared functionality for websocket providers
The npm package @feathersjs/socket-commons receives a total of 2,331 weekly downloads. As such, @feathersjs/socket-commons popularity was classified as popular.
We found that @feathersjs/socket-commons demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
The Socket Research Team has discovered six new malicious npm packages linked to North Korea’s Lazarus Group, designed to steal credentials and deploy backdoors.
Security News
Socket CEO Feross Aboukhadijeh discusses the open web, open source security, and how Socket tackles software supply chain attacks on The Pair Program podcast.
Security News
Opengrep continues building momentum with the alpha release of its Playground tool, demonstrating the project's rapid evolution just two months after its initial launch.