2013-07-23 83 views
1

我正在寫一個小型遊戲,基於socket的顯然。一切工作正常在本地主機的時候,但是當我從我的專用服務器.swf文件,並嘗試連接到服務器的Node.js,連接被卡住的「握手授權」:Flash + Node.JS + Socket.io卡在握手授權

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"); 
} 
+1

我發現從節點v0.8.x升級到v0.10.x產生了這個錯誤。你使用[simb的Flash Socket.IO](https://github.com/simb/FlashSocket.IO)實現嗎? – funseiki

+0

是的,simb的。 – Drabuna

+0

我應該回滾到0.8x.x嗎?或者還有其他解決方法嗎? – Drabuna

回答

2

我已經安裝了早期版本中使用正節點(0.8.25)的 - 節點版本管理(https://npmjs.org/package/n),和一切開始工作正常。感謝funseiki!

+0

我也在嘗試做類似的事情。你有沒有在節點0.10.x上工作?如果不是你使用的節點/ socket.io的確切版本?謝謝。 – Shrill