我正在使用 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 设备(带有 html5 应用程序,使用 jquery mobile 开发)。但我无法连接到套接字,它返回错误(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 上
有可能实现这样的应用吗?
谢谢