Вебсокеты обеспечивают только транспорт (бинарный поток), для полноценного RPC надо еще десериализовать сообщения и раскидать их по своим эндпоинтам (функциям).
Чтобы не делать это вручную, обычно используют HTTP-рутеры и просто кидают сообщения в тело HTTP-запроса, так? (И называют это JSON-RPC)
Ну а если мне не нужен HTTP-протокол, то надо руками писать свою реализацию рутинга по функциям API?