繁体   English   中英

使用NodeJ的Azure WebSocket

[英]Azure WebSocket using NodeJs

该代码在Azure中运行

var http = require('http');
var port = process.env.port || 1337;
http.createServer(function (req, res) {
    res.writeHead(200, { 'Content-Type': 'text/plain' });
    res.end('Hello World\n');
}).listen(port);

而下面编写的代码将引发错误“ .azurewebsites.net当前无法处理此请求。 HTTP错误500'。 在应用程序日志中,它显示“应用程序引发了未捕获的异常并被终止:SyntaxError:在严格模式下使用const”。 请提出可能是什么问题。 当前使用的节点版本9.2.0还尝试在package.json和应用程序设置中将版本更改为8.11.3。

var app = require('http').createServer(handler)
var io = require('socket.io')(app);
var fs = require('fs');

var port = process.env.PORT || 1337;
app.listen(port);

function handler(req, res) {
    fs.readFile(__dirname + '/page.html',
        function (err, data) {
            if (err) {
                res.writeHead(500);
                return res.end('Error loading index.html');
            }

            res.writeHead(200);
            res.end(data);
        });
}

io.on('connection', function (socket) {
    console.log((new Date()) + ' Connected to server socket');

    socket.emit('message', {
        msg: 'Connected! Greetings from server!'
    });

    socket.on('message', function (data) {
        console.log((new Date()) + ' Message: ' + data);
        socket.emit('message', {
            msg: 'Message received from client: ' + data
        });
    });

    socket.on('disconnect', function () {
        console.log((new Date()) + ' Disconnected!');
    });
});

当前,这两个版本(8.11.3 / 9.2.0)的Node在Azure上不可用。

一旦指定了未在Azure上安装的版本,便会使用旧版本0.10.40,默认情况下未启用const ,因此我们遇到了SyntaxError: Use of const in strict mode 有关更多详细信息,请参见相关线程

我们可以使用https://<yourwebappname>.scm.azurewebsites.net/api/diagnostics/runtime等。请访问https://<yourwebappname>.scm.azurewebsites.net/api/diagnostics/runtime以查看所有可用版本。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM