В точности то, что вы описали, принципиально невозможно сделать, потому что Javascript не включает в себя возможности распределённого программирования и выполняется только в клиентском браузере.
То, что вы на самом деле хотите сделать - посылать сообщения
с сервера всем подключённым в данный момент браузерам. Для этого в 2022 году у вас есть три технологии, кратко описаны они вот в этом ответе на Stackoverflow:
https://stackoverflow.com/a/58960728/647199Всеми тремя способами можно добиться эффекта, который вас интересует - на одном браузере что-то происходит, этот браузер отправляет сообщение об этом на сервер (для этого есть куча технологий, например, уже достаточно распространённый
Fetch API), сервер отправляет это сообщение всем остальным подключённым браузерам.
- Традиционный приём, называемый long polling. Вы запускаете в браузере таймер, по которому посылаете на сервер запросы, нет ли каких новых сообщений. Если посылать запросы достаточно часто (например, раз в две секунды), у посетителей будет иллюзия мгновенного отклика. Преимущество в том, что от сервера вообще ничего особенного не нужно, используются только стандартные запросы. Недостаток в гигантской нагрузке на сервер, потому что большая часть запросов будет возвращать "ничего не произошло".
- Server-Sent events. Вы открываете в браузере соединение с сервером, и слушаете, не пришло ли сообщение. Никаких лишних телодвижений от браузера больше не нужно. Преимущество в том, что браузер становится полностью пассивным, мы экономим запросы и реагируем мгновенно, как только получили сообщение. Недостатки описаны вот в этом ответе на Stackoverflow: https://stackoverflow.com/a/5326159/647199 самый значительный из них на мой взгляд - это ограничение на количество соединений с сервером на весь браузер, сколько бы вы сайтов с SSE ни открыли.
- WebSockets. Стандартный ответ на вопрос "как сделать двустороннее мгновенное общение между браузером и сервером". Преимущество в том, что мы можем как отправлять, так и получать сообщения, причём мы не ограничены текстом, можно гонять туда-сюда двоичные данные, то есть, например, файлы целиком. Основной недостаток в том, что это уже не классический AJAX, нужно целиком весь фронтэнд выстраивать вокруг вебсокета вашего. Ну, и, конечно, нужен веб-браузер, который будет поддерживать WebSockets.