Ich habe ein hübsches Beispiel für Vanille -Web -Socket. Der Server ist ein Knoten mit WS: < /p>
const express = require('express');
const WebSocket = require('ws');
const app = express();
const server_socket = new WebSocket.Server({ server: server, path: '/ws' });
server_socket.on('connection', function(ws) {
console.log("client joined");
ws.on('error', (error) => {console.error('Error');});
ws.on('close', () => {console.log('client left');});
}
< /code>
Client ist JavaScript: < /p>
const socket = new WebSocket('ws://3.17.155.18/ws');
socket.addEventListener('open', () => {
console.log('WebSocket connection opened');
});
< /code>
Dies funktioniert hervorragend in Chrome, Firefox, Oper und mutig, aber nicht in Safari. Safari scheitert mit
WebSocket -Verbindung zu 'WS: //3.17.155.18/WS' fehlgeschlagen: Es gab eine schlechte Antwort
Antwort vom Server. Webinspektor, die alle identische Anrufe in die Web-Socket tätigen, mit Ausnahme für die folgenden Header, dass alle anderen Browser die Safari haben: < /p>
Akzeptieren-codieren = gzip, Deflatat < /li>
Akzeptieren-Sprache = en-us, en; q = 0,9 < /li> < /li>
us. 3.17.155.18 < /li>
Sec-Websocket-Ausländer = Permessage-Deflate; client_max_window_bits < /li>
< /ul>
(Eigentlich hat dieser letzte Header-Safari, aber nur mit einem Wert von "Permessage-Deflate") < /p>
Ich sehe keine Möglichkeit, die Header-Safari zu ändern, sodass sich die Säure wundern. Ich muss mir vorstellen, dass es eine Möglichkeit gibt, ein so einfaches WebSockets -Beispiel in Safari zu bearbeiten.
Websocket, der sich nicht aus dem Safari -Browser verbindet, sondern für alle anderen funktioniert ⇐ JavaScript
-
- Similar Topics
- Replies
- Views
- Last post