【发布时间】:2017-10-18 05:50:21
【问题描述】:
我们有一个通过 WS 与后端通信的应用程序。我们用msgpack-lite对所有消息进行编码,库规范说它支持IE10。在 Chrome、Firefox、Safari 和 Edge 等所有现代浏览器中都运行良好。但是在 IE10 中我们遇到了一个奇怪的情况:
msgpack-lite 将消息编码为与其他浏览器中相同的二进制文件但是在将编码消息发送到后端后,此二进制消息会发生变化。
示例。
我们想要编码并发送到后端的消息:
{
"method": "subscribe",
"data": {
"sports": [
85
]
}
}
编码消息(后端也处理从除 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]
已处理从 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]
所以我们的问题是:如何在 IE10 中通过 websockets 发送二进制数据?
【问题讨论】:
标签: javascript internet-explorer websocket msgpack