There are few approaches:
- Long polling (or any kind of "let me send an axios call every
x
seconds): quite naive but can do the job in some situations, not the best in the long term
- Server Sent Events: unidirectional with some limitations, can be enough depending on your use-case
- Websockets, bi-directionnal and by far the most efficient way of having communication in real time in both directions.
SocketIO is indeed the most common approach if you have a JS backend + frontend. Otherwise, your backend may have it's own solution already baked-in, like Action Cable for Ruby on Rails.
For Nuxt (2 and 3), you can use this module. It's not officially maintained by the core team but it may be enough if you don't want to write that part yourself.
PS: some questions regarding Nuxt + socket.io have already been asked here, you could give it a search if you're interested.