You can do with with trpc WebSocket transport
trpc has the benefit of being highly adopted, supported, and with a community.