Node.js Openshift上socket.io出现奇怪的跨源请求问题

Node.js Openshift上socket.io出现奇怪的跨源请求问题,node.js,sockets,cross-domain,socket.io,Node.js,Sockets,Cross Domain,Socket.io,我的应用程序在localhost上运行得非常好,但当我将其推到OpenShift时,socket.io遇到了这个问题 XMLHttpRequest cannot load http://test-jackguy.rhcloud.com:8000/socket.io/1/?t=1387836069741. Origin http://test-jackguy.rhcloud.com is not allowed by Access-Control-Allow-Origin. 我不明白为什么这会

我的应用程序在localhost上运行得非常好,但当我将其推到OpenShift时,socket.io遇到了这个问题

XMLHttpRequest cannot load http://test-jackguy.rhcloud.com:8000/socket.io/1/?t=1387836069741. Origin http://test-jackguy.rhcloud.com is not allowed by Access-Control-Allow-Origin. 
我不明白为什么这会是一个访问控制允许来源的问题。根据OpenShift对WebSocket的说明,我在客户端上使用以下URL:

var socket = io.connect('ws://test-jackguy.rhcloud.com:8000/');
在服务器上,我有以下代码:

var express = require('express');
var app = express();
var server = app.listen(process.env.OPENSHIFT_INTERNAL_PORT || process.env.OPENSHIFT_NODEJS_PORT || 8080, process.env.OPENSHIFT_INTERNAL_IP || process.env.NODEJS_IP);
var io = require('socket.io').listen(server, { log: false });
    io.set('log level', 1);
    io.set("transports", ["websocket"]);
我的目录结构如下所示:

/application
    server.js
    /public
        /slsd
            index.html
            /js
                script.js
其中script.js是客户端连接,server.js是服务器文件


这是网址。有人知道怎么回事吗?

如果网站暂时关闭,那是因为我正在尝试修复它。您的网站正在从端口80获得服务,但您正在尝试连接端口8000上的websocket服务器,因此来源不同。为什么将它们放在两个单独的端口上?根据OpenShift的文档,WebSocket只在端口8000上起作用。上面的代码不能准确地反映我的-我更改了它。顺便说一下,应用程序现在使用XHR轮询运行,而不必在特定端口上运行。不过我还是喜欢使用WebSockets。我对OpenShift一无所知,所以我不能真正评论对他们来说正确的方法是什么。任何东西都有一个端口,除非另有说明,否则XHR轮询只使用默认端口80。我以前从来没有遇到过问题-我在OpenShift上有另一个应用程序,其中WebSocket工作得非常好。哦,好吧,我想。