We have an application that communicate with backend via WS. We encode all messages with msgpack-lite, library specification said that it supports IE10. In all modern browsers like Chrome, Firefox, Safari and Edge all works well. But in IE10 we caught a strange situation:
msgpack-lite encodes message to the same binary as in other browsers BUT after sending encoded message to the backend this binary message changes.
Example.
Our message that we want encode and send to the backend:
{
"method": "subscribe",
"data": {
"sports": [
85
]
}
}
Encoded message (backend also handle the same data sent from all browsers except IE10):
[130 166 109 101 116 104 111 100 169 115 117 98 115 99 114 105 98 101 164 100 97 116 97 129 166 115 112 111 114 116 115 145 85]
Handled message that had sent from IE10:
[239 191 189 239 191 189 109 101 116 104 111 100 239 191 189 115 117 98 115 99 114 105 98 101 239 191 189 100 97 116 97 239 191 189 239 191 189 115 112 111 114 116 115 239 191 189 85]
So our question is: how can binary data changed during sending via websockets in IE10?