Update Socket Io Component

Hi Niotron Team,

I am facing issues with the current Socket.IO component in Niotron:

1. Message Duplication: Listening to events like chat_response causes duplicate messages after multiple matches, because the component seems to attach multiple listeners instead of reusing a single listener.

2. Single Listener Support: We need the ability to listen to an event only once without duplicates, similar to socket.on(event, callback, once=true) in standard Socket.IO.

3. Socket.IO Version: The component is still using Socket.IO SDK v2.0, which lacks some important features and improvements present in v4.x.

These issues affect real-time chat apps and matchmaking scenarios. An update to support Socket.IO v4+ and proper single-event listener handling would solve these problems.

Thanks for considering this update.