Возможно клиент использует дополнительные зарезервированные опкоды для каких-то своих целей/задач со своим сервером и поэтому он не соответствует стандарту. При условии, что фреймы получены правильно, конечно.
UPD: вероятно фреймы просто приходят кусками и вы не учитываете данный момент в своём коде. Спасибо
Ivan Ustûžanin за напоминание данного факта.
RFC 6455 #5.2
Defines the interpretation of the "Payload data". If an unknown opcode is received, the receiving endpoint MUST _Fail the WebSocket Connection. The following values are defined.
- %x0 denotes a continuation frame
- %x1 denotes a text frame
- %x2 denotes a binary frame
- %x3-7 are reserved for further non-control frames
- %x8 denotes a connection close
- %x9 denotes a ping
- %xA denotes a pong
- %xB-F are reserved for further control frames