W JavaScript, gdy instancji websocket:Czy WebSocket może zmienić typ swojego binaryType w locie?
ws = new WebSocket(url);
można ustawić to binaryType:
ws.binaryType = "blob";
// or
ws.binaryType = "arraybuffer";
Pytanie: mogę zmienić binaryType w locie?
Na przykład, jeśli chcę użyć tej samej instancji WS do przeplatania zarówno wiadomości tekstowych, jak i binarnych, czy mogę wykonać następujące czynności?
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);
Czytając specyfikację W3C websocket, nie widzę niczego, co wyraźnie mówi „nie można zmienić binaryType”, ale każdy przykład/Wykorzystanie websocket że widziałem zestawy binaryType ani razu potem zmienia to, co sugeruje, że nie można go zmienić.
Wszelkie informacje są mile widziane.
To, że nie każdy scenariusz jest przykładowy, nie oznacza, że nie jest możliwe. Próbowałeś czegoś samemu? – Ian
Proponuję wypróbować kilka różnych przeglądarek (i wersji), aby zobaczyć. Nie sądzę, żeby w obu przypadkach był to dobry pomysł. Myślę, że większość ludzi używa warstw abstrakcji, które mają awarie połączenia/fallforwards, takie jak socket.io i SignalR. ymmv. – Tracker1