В JavaScript, когда экземпляр WebSocket:Может ли WebSocket переключать свой бинарный тип на лету?
ws = new WebSocket(url);
вы можете установить его binaryType:
ws.binaryType = "blob";
// or
ws.binaryType = "arraybuffer";
Вопрос: Могу ли я изменить binaryType на лету?
Например, если бы я хотел использовать тот же экземпляр WS для чередования текстовых и двоичных сообщений, могу ли я сделать следующее?
ws = new WebSocket(url);
// Send text
ws.binaryType = "blob";
ws.send("this is text");
// Now send binary data
ws.binaryType = "arraybuffer";
var ab = new ArrayBuffer(...);
ws.send(ab);
При чтении спецификации W3C WebSocket, я не видел ничего, что явно говорит: «Вы не можете изменить binaryType», но каждый пример/использование WebSocket, что я видел наборы binaryType один раз, то никогда не меняется это, что sorta предполагает, что его нельзя изменить.
Любая информация будет оценена по достоинству.
Просто потому, что у них нет каждого сценария в качестве примера, это не значит, что это невозможно. Вы сами что-то пробовали? – Ian
Я бы предложил попробовать несколько разных браузеров (и версий), чтобы их увидеть. Я не думаю, что это, вероятно, хорошая идея в любом случае. Я действительно думаю, что большинство людей используют слои абстракции, у которых есть резервные связи/fallforwards, такие как socket.io и SignalR. YMMV. – Tracker1