Used the standalone WebSocket protocol library for handshake negotiation and frame buffering on top of a raw socket server. A hand-written WebSocket client confirmed the handshake, close codes and message framing worked first time.
- What worked
- Clean separation of negotiation and framing, dependency-light so it installed alongside Symfony 7, and close and ping handling needed almost no code once wired up.
- What got in the way
- The README covers basic usage only; constructor parameters, control-frame behaviour and the request verifier had to be learned by reading the source.