Kann eine WebSocket ihren binaryType im laufenden Betrieb wechseln?

8

In JavaScript, wenn Sie einen WebSocket instanziieren:

%Vor%

Sie können es binaryType festlegen:

%Vor%

Frage: Kann ich binaryType im laufenden Betrieb ändern?

Wenn ich beispielsweise dieselbe WS-Instanz verwenden möchte, um sowohl Text- als auch Binärnachrichten zu verschachteln, könnte ich Folgendes tun?

%Vor%

Beim Lesen der W3C-WebSocket-Spezifikation habe ich nichts gesehen, was explizit besagt: "Du kannst binaryType nicht ändern", aber jedes Beispiel / jede Verwendung von WebSocket, das ich gesehen habe, setzt binaryType einmal und ändert es dann nie schlägt vor, dass es nicht geändert werden kann.

Jede Information wäre willkommen.

    
dlchambers 28.05.2013, 20:32
quelle

1 Antwort

13

Sie können den binaryType im laufenden Betrieb ändern, aber nur den Datentyp der empfangenen Nachrichten. Um binäre Daten zu senden, müssen Sie entweder ein Blob oder ein typisiertes Array senden. Wenn Sie eine Zeichenfolge senden, wird sie immer als Zeichenfolge gesendet (und übermittelt). In dem Drahtprotokoll kann eine Nachricht entweder 'Text' sein, was bedeutet, dass der Sender Daten gesendet hat, die als eine Zeichenkette codiert sind, oder sie kann 'binär' sein, was bedeutet, dass die Nachricht einen rohen codierten Bytestrom enthält. Der binaryType gibt an, wie diese Rohdaten an die Anwendung übergeben werden sollen.

Mit anderen Worten, wenn Sie binaryType festlegen, bedeutet dies, dass beim nächsten Mal, wenn der Nachrichtenhandler den Empfang einer binären Nachricht auslöst, diese Ereignisdaten vom Typ binaryType sind.

    
kanaka 28.05.2013 21:33
quelle

Tags und Links