我正在寫一個小型遊戲,基於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");
}
我發現從節點v0.8.x升級到v0.10.x產生了這個錯誤。你使用[simb的Flash Socket.IO](https://github.com/simb/FlashSocket.IO)實現嗎? – funseiki
是的,simb的。 – Drabuna
我應該回滾到0.8x.x嗎?或者還有其他解決方法嗎? – Drabuna