Flash + Node.JS + Socket.io卡在握手授权

我正在写一个小型游戏,显然是基于套接字的。 一切工作正常在localhost时,但是当我从我的专用服务器运行.swf文件,并试图连接到node.js服务器,连接被卡在“握手授权”:

info: Server starting... info - socket.io started info: Listening on port 4000 info: Server started. debug - client authorized info - handshake authorized _kqPhvoD6jYI-c1Gr7zu 

这就是它。

  • 本地SWF文件 – >本地Node.JS – >工作。
  • 本地SWF文件 – >远程Node.JS – >的作品。
  • 远程SWF文件 – >远程Node.js – >不起作用。

节点版本0.10.12。 这不是防火墙或防病毒软件。 尝试在不同的端口上运行。

代码示例:

 //setup express for serving crossdomain on same port as game var express=require('express'); var app=express(); app.get("/crossdomain.xml", onGetCrossdomain); var server=require('http').Server(app); //setup socket io var socketIo=require('socket.io'); var io=socketIo.listen(server); //listen on port server.listen(currentPort); console.log("Listening on port "+currentPort); io.set('transports', [ 'flashsocket' ]); io.sockets.on('connection', onConnection); function onGetCrossdomain(req, res) { res.sendfile(__dirname+'/crossdomain.xml'); } function onConnection(socket) { console.log("connected"); } 

我已经使用n节点版本pipe理器( https://npmjs.org/package/n )安装了早期版本的节点(0.8.25),并且一切正常。 谢谢funseiki!