I get this error when I try to establish a wss connection with my server:
Connection to WebSocket with 'wss: // mydomain: 3000 /' failed: connection error: net :: ERR_CONNECTION_CLOSED
Currently, I have set up the apache2 virtual host configuration to listen for requests on ports 443 and 80:
<VirtualHost *:80> ServerName otherdomainname.co.uk ServerAlias www.otherdomainname.co.uk RewriteEngine On RewriteRule ^/(.*)$ /app/$1 [l,PT] JkMount /* worker2 </VirtualHost> <VirtualHost _default_:443> ServerName otherdomainname.co.uk ServerAlias www.otherdomainname.co.uk RewriteEngine On RewriteRule ^/(.*)$ /app/$1 [l,PT] SSLEngine On SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key <Location /> SSLRequireSSL On SSLVerifyClient optional SSLVerifyDepth 1 SSLOptions +StdEnvVars +StrictRequire </Location> JkMount /* worker2 </VirtualHost>
As you can see, it uses JkMount to send a Tomcat request, which correctly serves the web page for both HTTP and HTTPS.
When I visit a site using the HTTP protocol on port 80, a WebSocket connection can be made using the ws protocol.
When I visit a site using the HTTPS protocol on port 443, the site is maintained correctly, but the connection to WebSocket is not performed using wss .
I am using the ws node.js module to provide a WebSocket server:
var WebSocketServer = require('ws').Server , wss = new WebSocketServer({ port: 3000 }), fs = require('fs'); wss.on('connection', function connection(ws) { ws.on('message', function incoming(message) { console.log('received: %s', message); ws.send(message); ws.send('something'); });
Why can't I successfully connect to the WebSocket server using the wss protocol through https ?
crm
source share