probil / vue-socket.io-extended

:v::zap: Socket.io bindings for Vue.js and Vuex (inspired by Vue-Socket.io)
MIT License
629 stars 38 forks source link

Socket.io-encrypt incompability #521

Open ExQDev opened 3 years ago

ExQDev commented 3 years ago

Vuex integration and $socket.$subscribe does not work with socket.io-encrypt. It returns raw encrypted data, but $socket.client.on returns decrypted data. Please, add compability to use both of these plugins with vuex actions.

probil commented 3 years ago

Hi @ExQDev That issue is rather from socket.io side. There is no easy way to subscribe to all events. vue-socket.io-extended and socket.io-encrypt use two different incompatible approaches for that. Having something like middleware on socket.io side could have helped a lot.

I went through the code of socket.io-encrypt and by now I don't see any easy solution to combine these two. I'd think more about it. Maybe I missed something. 🤔 The solution might be by utilizing socket.io v3 which has something similar to middlewares I mentioned but it would require some changes to both socket.io-encrypt and vue-socket.io-extended (already planned)

BTW Any particular reason to have this kind of encryption? I thought using secured version of the protocol (e.g. https:// or wss://) would suffice since data sent over the wire is encrypted with TLS thus a proxy servers couldn't read it

ExQDev commented 3 years ago

Perhaps secured version of the protocol is nice practice, but for now this is the best solution for my project, 'cause dev version should to be secured too.