Socket
Socket
Sign inDemoInstall

@feathersjs/socketio

Package Overview
Dependencies
33
Maintainers
3
Versions
121
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 5.0.0-pre.33 to 5.0.0-pre.34

6

CHANGELOG.md

@@ -6,2 +6,8 @@ # Change Log

# [5.0.0-pre.34](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.33...v5.0.0-pre.34) (2022-12-14)
### Bug Fixes
- **socketio:** Disconnect socket on app disconnect event ([#2896](https://github.com/feathersjs/feathers/issues/2896)) ([4ba0039](https://github.com/feathersjs/feathers/commit/4ba003907843cfc2655798a568b16f07ff8adb1b))
# [5.0.0-pre.33](https://github.com/feathersjs/feathers/compare/v5.0.0-pre.32...v5.0.0-pre.33) (2022-11-08)

@@ -8,0 +14,0 @@

2

lib/index.js

@@ -44,3 +44,3 @@ "use strict";

const io = (this.io = new socket_io_1.Server(port || server, options));
io.use((0, middleware_1.disconnect)(app, getParams));
io.use((0, middleware_1.disconnect)(app, getParams, socketMap));
io.use((0, middleware_1.params)(app, socketMap));

@@ -47,0 +47,0 @@ io.use((0, middleware_1.authentication)(app, getParams));

@@ -1,5 +0,5 @@

import { Application, Params } from '@feathersjs/feathers';
import { Application, Params, RealTimeConnection } from '@feathersjs/feathers';
import { Socket } from 'socket.io';
export declare type ParamsGetter = (socket: Socket) => any;
export declare type NextFunction = (err?: any) => void;
export type ParamsGetter = (socket: Socket) => any;
export type NextFunction = (err?: any) => void;
export interface FeathersSocket extends Socket {

@@ -10,4 +10,4 @@ feathers?: Params & {

}
export declare const disconnect: (app: Application, getParams: ParamsGetter) => (socket: FeathersSocket, next: NextFunction) => void;
export declare const params: (_app: Application, socketMap: WeakMap<any, any>) => (socket: FeathersSocket, next: NextFunction) => void;
export declare const disconnect: (app: Application, getParams: ParamsGetter, socketMap: WeakMap<RealTimeConnection, FeathersSocket>) => (socket: FeathersSocket, next: NextFunction) => void;
export declare const params: (_app: Application, socketMap: WeakMap<RealTimeConnection, FeathersSocket>) => (socket: FeathersSocket, next: NextFunction) => void;
export declare const authentication: (app: Application, getParams: ParamsGetter, settings?: any) => (socket: FeathersSocket, next: NextFunction) => void;

@@ -6,5 +6,13 @@ "use strict";

const debug = (0, commons_1.createDebug)('@feathersjs/socketio/middleware');
const disconnect = (app, getParams) => (socket, next) => {
socket.on('disconnect', () => app.emit('disconnect', getParams(socket)));
next();
const disconnect = (app, getParams, socketMap) => {
app.on('disconnect', (connection) => {
const socket = socketMap.get(connection);
if (socket && socket.connected) {
socket.disconnect();
}
});
return (socket, next) => {
socket.on('disconnect', () => app.emit('disconnect', getParams(socket)));
next();
};
};

@@ -11,0 +19,0 @@ exports.disconnect = disconnect;

{
"name": "@feathersjs/socketio",
"description": "The Feathers Socket.io real-time API provider",
"version": "5.0.0-pre.33",
"version": "5.0.0-pre.34",
"homepage": "https://feathersjs.com",

@@ -56,20 +56,20 @@ "main": "lib/",

"dependencies": {
"@feathersjs/commons": "^5.0.0-pre.33",
"@feathersjs/feathers": "^5.0.0-pre.33",
"@feathersjs/transport-commons": "^5.0.0-pre.33",
"socket.io": "^4.5.3"
"@feathersjs/commons": "^5.0.0-pre.34",
"@feathersjs/feathers": "^5.0.0-pre.34",
"@feathersjs/transport-commons": "^5.0.0-pre.34",
"socket.io": "^4.5.4"
},
"devDependencies": {
"@feathersjs/express": "^5.0.0-pre.33",
"@feathersjs/memory": "^5.0.0-pre.33",
"@feathersjs/tests": "^5.0.0-pre.33",
"@types/mocha": "^10.0.0",
"@types/node": "^18.11.9",
"@feathersjs/express": "^5.0.0-pre.34",
"@feathersjs/memory": "^5.0.0-pre.34",
"@feathersjs/tests": "^5.0.0-pre.34",
"@types/mocha": "^10.0.1",
"@types/node": "^18.11.10",
"lodash": "^4.17.21",
"mocha": "^10.1.0",
"shx": "^0.3.4",
"socket.io-client": "^4.5.3",
"typescript": "^4.8.4"
"socket.io-client": "^4.5.4",
"typescript": "^4.9.3"
},
"gitHead": "89f516bcb1457e23a02c6212e9cd8bacc4d267d4"
"gitHead": "42cca600d00f0b3b9d89fa79be30fcd46bc50132"
}
import http from 'http'
import { Server, ServerOptions } from 'socket.io'
import { createDebug } from '@feathersjs/commons'
import { Application } from '@feathersjs/feathers'
import { Application, RealTimeConnection } from '@feathersjs/feathers'
import { socket } from '@feathersjs/transport-commons'

@@ -45,3 +45,3 @@

// A mapping from connection to socket instance
const socketMap = new WeakMap()
const socketMap = new WeakMap<RealTimeConnection, FeathersSocket>()
// Promise that resolves with the Socket.io `io` instance

@@ -71,3 +71,3 @@ // when `setup` has been called (with a server)

io.use(disconnect(app, getParams))
io.use(disconnect(app, getParams, socketMap))
io.use(params(app, socketMap))

@@ -74,0 +74,0 @@ io.use(authentication(app, getParams))

@@ -1,2 +0,2 @@

import { Application, Params } from '@feathersjs/feathers'
import { Application, Params, RealTimeConnection } from '@feathersjs/feathers'
import { createDebug } from '@feathersjs/commons'

@@ -13,10 +13,23 @@ import { Socket } from 'socket.io'

export const disconnect =
(app: Application, getParams: ParamsGetter) => (socket: FeathersSocket, next: NextFunction) => {
export const disconnect = (
app: Application,
getParams: ParamsGetter,
socketMap: WeakMap<RealTimeConnection, FeathersSocket>
) => {
app.on('disconnect', (connection: RealTimeConnection) => {
const socket = socketMap.get(connection)
if (socket && socket.connected) {
socket.disconnect()
}
})
return (socket: FeathersSocket, next: NextFunction) => {
socket.on('disconnect', () => app.emit('disconnect', getParams(socket)))
next()
}
}
export const params =
(_app: Application, socketMap: WeakMap<any, any>) => (socket: FeathersSocket, next: NextFunction) => {
(_app: Application, socketMap: WeakMap<RealTimeConnection, FeathersSocket>) =>
(socket: FeathersSocket, next: NextFunction) => {
socket.feathers = {

@@ -23,0 +36,0 @@ provider: 'socketio',

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc