A custom WebSocket implementation is the best route IMO, Both bandwidth(less data a game needs to be multiplayer means more support for users with slower internet) wise and cost wise(A nodejs server can hold 100-200 ccu for 0-5$)
Edit:I uploaded my implementation on the Construct community discord if anyone wants to mess around with it