Ich versuche, Proxygen mit Apache einzurichten, um socket.io in meiner Nodejs-Anwendung verwenden zu können. Aber ich erhalten diese Fehlermeldung auf der Client-Seite:Socket.io mit Apache-Proxy
WebSocket connection to 'wss://example.com/tools/socket.io/?EIO=3&transport=websocket&sid=eOGwJSC14TTWhHRMAAAR' failed: Error during WebSocket handshake: Unexpected response code: 400
Heres meine Apache-Konfiguration:
<VirtualHost *:443>
ServerName example.com
ServerAlias example.com
#SSLRequireSSL
SSLProtocol all -SSLv2 -SSLv3
SSLCompression off
SSLHonorCipherOrder on
SSLEngine on
SSLCertificateFile /etc/ssl/main.pem
SSLCertificateKeyFile /etc/ssl/dec_ssl.key
SSLCertificateChainFile /etc/ssl/sub.class1.server.ca.pem
SSLCACertificateFile /etc/ssl/main.pem
SSLProxyEngine On
ProxyPreserveHost On
ProxyRequests off
</VirtualHost>
<Location /tools/>
ProxyPass http://localhost:8181/
ProxyPassReverse http://localhost:8181/
</Location>
Und hier ist Client-Seite Code:
socket = io.connect("https://example.com",{path:'/tools/socket.io'});
socket.on("connect", function() {
console.log("socketio Connected to server!");
});
Was muss ich hinzufügen Apache-Konfiguration, um diesen Fehler loszuwerden?
EDIT: Meine Apache-Version: Server-Version: Apache/2.4.6 (CentOS)
Sind Sie sicher, dass Ihr socket.io Server auf 8181 hört? Können Sie es direkt treffen? –
Haben Sie Ihr Apache-Fehlerprotokoll überprüft? – jcaron
@ M.Babcock, ja, Server läuft auf 8181. Imstande, socket.io.js von URL zu bekommen: https://example.com/tools/socket.io/socket.io.js – hs2d