1. Для определения того, что клиент закрыл браузер, сервер может периодически (например, каждые несколько секунд) проверять состояние подключения к клиенту. Если сервер пытается отправить данные клиенту и не получает от него ответа в течение определенного времени, то можно считать, что клиент закрыл браузер.
2. Для реализации механизма оповещения пользователя о закрытии соединения другого пользователя на веб-сокет сервере, можно использовать механизмы событий. Когда сервер обнаруживает, что соединение с одним из пользователей закрылось, он может отправить событие оповещения остальным пользователям. Затем, клиенты могут обрабатывать это событие и выводить сообщение или выполнять другие действия для уведомления пользователя о закрытии соединения другого пользователя.