Kann eine WebSocket-Schalter sein "binaryType" on-the-fly?

In JavaScript, wenn Sie instanziieren ein WebSocket:

ws = new WebSocket(url);

können Sie es "binaryType":

ws.binaryType = "blob";
//or
ws.binaryType = "arraybuffer";

Frage:
Kann ich das ändern "binaryType" on-the-fly?

Zum Beispiel, wenn ich wollte verwenden die gleiche WS-Instanz interleave sowohl text-und Binär-Nachrichten, könnte ich Folgendes tun?

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);

Beim Lesen der W3C WebSocket-Spezifikation, ich habe nichts gesehen, die explizit sagt "du kannst das nicht ändern "binaryType" -", aber jedes Beispiel/Verwendung von WebSocket, dass ich gesehen habe, setzt "binaryType" - einmal, dann nie verpasst es, die sorta deutet darauf hin, dass es nicht geändert werden kann.

Jede info würde geschätzt.

  • Nur weil Sie nicht jedes Szenario als ein Beispiel, bedeutet nicht, es ist nicht möglich. Haben Sie versucht, etwas selbst?
  • Ich würde vorschlagen, es zu versuchen, auf ein paar verschiedenen Browsern (und Versionen) zu sehen. Ich glaube nicht, dass es wahrscheinlich eine gute Idee in jedem Fall. Ich denke, dass die meisten Menschen sind mit der Abstraktion Layer, Verbindung fallbacks/fallforwards wie socket.io und SignalR. ymmv.
InformationsquelleAutor dlchambers | 2013-05-28
Schreibe einen Kommentar