При перезагрузке сервера каждый раз добавляется один вебсокет, потому что при каждом соединении сервер создает новый экземпляр сокета.
Вебсокеты - это механизмы двусторонней связи между клиентским браузером и сервером. Они позволяют обменяться данными в режиме реального времени постоянным подключением через один TCP соединение.
Когда вы перезагружаете сервер, он запускает новый экземпляр вашего приложения, что приводит к созданию нового серверного сокета для ваших вебсокетов. Клиентский браузер затем соединяется с новым сервером и создает новое соединение сокета, чтобы обмениваться данными. При каждом новом соединении создается новый экземпляр вебсокета.
В качестве примера, представьте, что у вас есть чат-приложение, которое использует вебсокеты для обмена сообщениями между пользователями. Когда пользователи подключаются к приложению, сервер создает экземпляры вебсокетов для каждого соединения. Если сбросить сервер, то все текущие соединения будут закрыты, а при следующем подключении пользователей будут созданы новые экземпляры вебсокетов, чтобы обеспечить новые соединения.
Для решения этой проблемы вам нужно убедиться, что вы закрываете и очищаете соединения и экземпляры вебсокетов при завершении работы сервера, чтобы они не остались висеть и использовать ресурсы. Вы также можете реализовать механизм переподключения на клиентской стороне, который будет автоматически восстанавливать соединение после перезагрузки сервера.