nodejs server set up UPDATE:

The node.js server is now running correctly at Openshift. The node.js server and the socket.io script can now be accessed publicly.

Running cron in Drupal, I see that it can also access the node.js server. However, my problem now is this, from the Chrome console:


  GET https://nodejstapchat-breathalert.rhcloud.com:8080/socket.io/?EIO=3&amp;transport=polling&amp;t=LM-NWXx net::ERR_CONNECTION_TIMED_OUT    socket.io.js:3511 


I think it has to do with that redundant port in the url. Can anyone confirm?



ORIGINAL QUESTION:

Having problems while setting up the drupal nodejs module to use with Chatroom. This is working for me on localhost, so I suspect it has something to do with HTTPS. 

The Drupal site is served only via HTTPS, and I just got the nodejs server, running on Modulus.io with HTTPS.

The drupal nodejs module (v7.x-1.13) and nodejs server (v1.0.9) are of compatible versions (based on the doc). Also confirmed the matching config on the Drupal site as well.

Checking the HTML source on one of the chat pages using nodejs, came across this:

&lt;script src="https://tapcreativechat-64706.onmodulus.net:8088/socket.io/socket.io.js"&gt;&lt;/script&gt;


But it appears it does not return the socket.io script (also tried port 8080). 

Second related problem is the messages in Drupal dblog:


  Error reaching the Node.js server at "nodejs/health/check": [-110] Connection timed out.


I am out of ideas why Drupal can't connect to the nodejs server.

My Node.js server config file:

//Node.js server 
settings = {
scheme: 'https',
port: process.env.PORT || 443,
host: 'localhost',
resource: '/socket.io',
serviceKey: 'key',
//Drupal site
backend: {
    port: 80,
    host: 'tapcreative.services',
    scheme: 'https',
    basePath: '/',
    messagePath: '/nodejs/message'
},
debug: true,
sslKeyPath: '_privatekey.key',
sslCertPath: 'tapcreative_services.crt',
sslCAPath: 'all_certs.crt',
baseAuthPath: '/nodejs/',
extensions: [],
clientsCanWriteToChannels: false,
clientsCanWriteToClients: false,
transports: ['websocket', 'polling'],
jsMinification: true,
jsEtag: true,
logLevel: 1
};


Advice is appreciated.
your first host: '', (line 4) is empty, should be host: 'tapcreative.services',

In addition, you're using the wrong port, port 80 is for HTTP. You need to use the HTTPS port, 443.

Change line 8 from port: 80, to port: 443,