Bit*_*ian 5 javascript networking xmlhttprequest azure socket.io
我正在使用socket.io进行windows azure项目.奇怪的是socket.io服务器在我刚部署web角色时启动,但是当我部署整个云项目时,socket.io服务器没有启动,我得到这个错误 -
"SCRIPT7002: XMLHttpRequest: Network Error 0x2efd, Could not complete the operation due to error 00002efd."
Run Code Online (Sandbox Code Playgroud)
我完全不知道这意味着什么.任何人都可以帮我解决这个问题吗?我整天都在为此烦恼.
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>
Run Code Online (Sandbox Code Playgroud)
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");
});
});
Run Code Online (Sandbox Code Playgroud)
事实证明,当我部署云项目时,App.js 脚本没有运行,即,当部署整个云项目时,我放入 web.config 中的 iisnode 处理程序没有执行其工作。读完这篇文章后,我发现我必须将一些文件放入 Web 角色的 bin 文件夹中,即 - ChangeConfig.ps1、download.ps1、node.cmd、setup_web.cmd。当您浏览该文章时,您可以生成这些文件。最后,您必须将此代码放入 ServiceDefinition.csdef 中
<Startup>
<Task commandLine="setup_web.cmd > 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>
Run Code Online (Sandbox Code Playgroud)
瞧!它就像一个魅力。您仍然需要通过在浏览器上运行 127.0.0.1/App.js 来启动 socket.io 服务器。我仍在研究如何以编程方式启动 App.js。
归档时间: |
|
查看次数: |
22782 次 |
最近记录: |