Cloud Foundry和Socket.IO跨域策略问题

时间:2012-11-13 04:59:27

标签: node.js websocket socket.io cloudfoundry cross-domain-policy

每次浏览器加载此网址时,我都会收到此类消息:

http://volkova.cloudfoundry.com/socket.io/socket.io.js

<?xml version="1.0"?><!DOCTYPE cross-domain-policy SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd"><cross-domain-policy><allow-access-from domain="*" to-ports="*"/></cross-domain-policy>

我尝试为socket.io做授权部分,但没有运气。

这是我配置socket.io

的代码部分
io = _.socketio.listen( _.serverdata.xserver, { log: true } );
    if( process.env.VMC_APP_PORT ){
        io.set( "transports", [
            "flashsocket",
            "htmlfile",
            "xhr-polling",
            "jsonp-polling"
        ] );
        io.configure( function( ){
            io.set( "authorization",
                function( handshakeDate, callback ){
                    //TODO: Provide level of security here
                    callback( null, true );
                } );
        } );
    }

当我在本地尝试我的代码时,一切正常。

在客户端我正在这样做:

<script src="http://volkova.cloudfoundry.com/socket.io/socket.io.js"></script>

socket = io.connect( "http://volkova.cloudfoundry.com" );

我的代码中是否有任何遗漏?或者我错过的任何配置?

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

是否可以看到应用程序的完整源代码,我部署了示例Socket.IO应用程序(从他们的主页),它似乎工作正常。

http://socket-io-example.cloudfoundry.com/socket.io/socket.io.js

如果您尝试从一个域连接到另一个域,则可能会出现问题。