2013-03-05 707 views
5

我正在使用socket.io作爲windows azure項目。奇怪的socket.io服務器啓動時,我只是部署Web角色,但是當我部署整個雲計算項目中,socket.io服務器犯規開始,我得到這個錯誤 -XMLHttpRequest:網絡錯誤0x2efd,由於錯誤而無法完成操作00002efd

"SCRIPT7002: XMLHttpRequest: Network Error 0x2efd, Could not complete the operation due to error 00002efd." 

我完全不知道是什麼手段。任何人都可以幫我解決這個問題嗎?我一整天都在喋喋不休。

SocketClient.html

<script> 
var socket = io.connect('http://127.0.0.1:4001'); 
socket.on('news', function (data) { 
    console.log(data);  
}); 

$(function() { 
    $("#sendresponse").bind("click", function() { 
    socket.emit('server', 'Hello World'); 

    }); 
} 
); 
</script> 

App.js

var app = require('express')(), server = require('http').createServer(app), io = require('socket.io').listen(server); 

server.listen(4001); 

app.get('/', function (req, res) { 
res.sendfile(__dirname + '/index.html'); 
}); 

io.sockets.on('connection', function (socket) { 
socket.emit('news', { hello: 'first time connect' }); 
socket.on('server', function (data) { 
    console.log(data); 
    socket.emit('news',"hello"); 
}); 
}); 
+0

ERROR_INTERNET_REQUEST_PENDING,「所需的操作無法完成,因爲一個或多個請求正在等待」。 – 2013-03-05 12:34:47

+0

這是什麼意思在我的socket.io上下文中? – Bitsian 2013-03-05 12:45:15

+0

而我該如何解決它? – Bitsian 2013-03-05 12:46:51

回答

3

原來,這App.js腳本未運行,當我部署的雲計算項目,即iisnode處理程序,我已經把在整個雲計劃部署完成時,我的web.config並沒有完成它的工作。經過這個article我發現我不得不把一些文件放到我的web角色的bin文件夾中 - ChangeConfig.ps1,download.ps1,node.cmd,setup_web.cmd。您可以在閱讀該文章時生成這些文件。最後,你必須把這個代碼放入你的ServiceDefinition.csdef

<Startup>  
<Task commandLine="setup_web.cmd &gt; log.txt" executionContext="elevated"> 
    <Environment> 
     <Variable name="EMULATED"> 
     <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" /> 
     </Variable> 
     <Variable name="RUNTIMEID" value="node;iisnode" /> 
     <Variable name="RUNTIMEURL" value="" /> 
    </Environment> 
    </Task> 
</Startup> 

而且瞧!它像一個魅力。您仍然必須通過在瀏覽器上運行127.0.0.1/App.js來啓動socket.io服務器。我仍在研究如何以編程方式啓動App.js。

相關問題