0
votes

I'm working on twitter search web app http://twitter.batak.tk/ and locally everything works fine but when I deploy it on OPENSHIFT MEAN stack server (free) I'm getting this error:

WebSocket connection to 'ws://nodejs-igrica.rhcloud.com/socket.io/?EIO=3&transport=websocket&sid=Wtvf6VI-9QqTvICUAAAI' failed: Error during WebSocket handshake: Unexpected response code: 400

twitter.batak.tk is just an alias to nodejs-igrica.rhcloud.com.

This is my socket service code:

app.
factory('SearchService', ['socketFactory', function(socketFactory) {
        var myIoSocket = io.connect('http://nodejs-igrica.rhcloud.com/:8000', {'forceNew':true });

        mySocket = socketFactory({
            ioSocket: myIoSocket
        });

        return mySocket;
}]);

and this is a server.js: https://github.com/isBatak/twitter_search_web_app/blob/master/server.js

I'm stuck with this...

2

2 Answers

4
votes

The problem came from Openshift. You have to specify the port sockets are going to use. Just had to write:

var ioSocket = io.connect('http://my-site.rhcloud.com:8000');

You must use port 8000. Source: question/answer, same problem like you

Extra

You should use a subdomain to access your openshift app. Use for example:

http://node.yourdomain.com:8000

Instead of

http://my-site.rhcloud.com:8000

Remember, you have to set up an alias for your gear in OpenShift in order to be correctly redirected.

1
votes

Hi did you try your server using the websocket.org echo service?