WebSocket -- это на транспортном уровне keepalive-tcp (от клиента к серверу), так что в вашем случае это, конечно же, решение проблемы. Есть и другие способы типа упомянутого лонгполла, server sent events и т.д.
Это то что касается веба, хотя из вопроса не очевидно что речь именно о вебе. Но в таком случае не очень понятно было бы в чём проблема, при открытом сервере вообще любой способ с постоянным соединением от клиента к серверу подойдёт (обычные tcp-соединения, например).