Socket.io connection from remote

4.9k Views Asked by At

I'm doing a real time application with jxcore (nodejs for Plesk Panel) and I'm new on nodejs. Application file index.js is running on domain mydomain.it:

var socket = require( 'socket.io' );
var express = require( 'express' );
var http = require( 'http' );
var app = express();
var server = http.createServer( app );

var io = socket.listen( server );

io.sockets.on( 'connection', function( client ) {
  client.on( 'message', function( data ) {
    io.sockets.emit( 'message', {
      name:data.name,
      surname:data.surname
    });
  });
});
server.listen( 8080 );

On the same domain there is a client page, for example mydomain.it/app, that includes:

<script src="../node/js/bootstrap.js"></script>
<script src="../node/js/node_modules/socket.io/node_modules/socket.io-client/dist/socket.io.js"></script>
<script src="../node/js/nodeClient.js"></script>

This is my nodeClient.js file:

var socket = io.connect( 'http://mydomain.it:8080' ); 
socket.on( 'message', function( data ) {
  var obj = {
    name:data.name,
    surname:data.surname
  }
  // do something
});

Now, I need to connect to the websocket from an Android app, installed on several devices. So there is a domain that contain a nodejs server and a client. And other remote android devices (with an html5 app, developed with jquery mobile). But I can't connect to the socket, it returns errors (ERR_CONNECTION_TIMED_OUT on chrome browser).

From the client page on the domain I can connect to the socket only if I change

var socket = io.connect( 'http://mydomain.it:8080' );

to

var socket = io.connect( 'http://127.0.0.1:8080' ); 

But of course I can't connect to the server from remote devices using localhost. Socket.io is installed only on mydomain.it

Is it possible to realize this kind of application?

Thanks

0

There are 0 best solutions below