Можно даже развить идею разделения объектов: Игра, Игрок.
Объект "игрок" оперирует соединением с пользователями, сам реализует обмен между сервером и клиентом и отвечает на запросы объекта "Игра". В объекте "Игра", по идее, не надо прописывать какие-либо сокеты, для "игры" есть только игроки, которые могут как-то изменять и реагировать на изменения состояния своими методами.
Можно описать объект "Бот", у которого будут все те же методы и свойства, как у "игрока", но при этом внутри не будет никаких веб-сокетов.
То есть, "Игра" дергает методы своих подключившихся игроков, но "Игре" не важно, бот это или человек. В коде объекта "игра" не должно быть упоминаний про веб-сокеты.