2

jxcore (Plesk Panel の nodejs) を使用してリアルタイム アプリケーションを実行していますが、nodejs は初めてです。アプリケーション ファイル index.js は、ドメイン 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 );

同じドメインに、mydomain.it/app などのクライアント ページがあり、次のものが含まれます。

<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>

これは私の nodeClient.js ファイルです:

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

ここで、複数のデバイスにインストールされている Android アプリから websocket に接続する必要があります。したがって、nodejs サーバーとクライアントを含むドメインがあります。その他のリモート Android デバイス (jquery モバイルで開発された html5 アプリを使用)。しかし、ソケットに接続できません。エラーが返されます (Chrome ブラウザでは ERR_CONNECTION_TIMED_OUT)。

ドメインのクライアントページから、変更した場合にのみソケットに接続できます

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

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

しかしもちろん、localhost を使用してリモート デバイスからサーバーに接続することはできません。Socket.io は mydomain.it にのみインストールされます

このようなアプリケーションを実現することは可能でしょうか?

ありがとう

4

0 に答える 0