This cost me about 5 hrs. On my local dev, real-time is unable to connect.
Everything seemed fine and worked using postman directly with the exact same connection and messages. After a lot of testing, finally I worked out that (in chrome) 127.0.0.1 works even though localhost doesn't. So set your Supabase url accordingly and all works again.