You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
However socket.io was rewritten for it's v3 and v4. The socket.io interface has changed slightly, causing the following exception to be thrown when socket.io is require'd and the probe attempts to hook in:
FATAL Node server exiting due to exception: TypeError: Cannot read property 'on' of undefined
at C:\firefly\repos\firefly-ui\node_modules\appmetrics\lib\aspect.js:56:26
at Array.forEach (<anonymous>)
at Object.exports.before (C:\firefly\repos\firefly-ui\node_modules\appmetrics\lib\aspect.js:55:9)
at SocketioProbe.attach (C:\firefly\repos\firefly-ui\node_modules\appmetrics\probes\socketio-probe.js:79:12)
I've done a little debugging and can see:
socket.io@2 exports a function with a prototype containing the methods the probe wants to patch.
socket.io@4 exports a factory function. The class is available as as export .Server (ie requre('socket.io').Server) however it's now a proper javascript Class, and it's constructor can't be hooked in the way used previously.