Node.js客户端服务器示例不适用于Azure服务器

时间:2018-07-31 16:33:42

标签: node.js azure azure-web-sites

我能够在本地PC上完美运行以下代码。能够与服务器正确连接和通信的客户端应用程序。当我尝试使用Visual Studio 2017将代码发布到Azure时失败,并显示以下错误消息:

The page cannot be displayed because an internal server error has occurred.

代码

var net = require('net');

var port = process.env.port || 8000;
var tcp_server = net.createServer(function (socket) {
    socket.write('Joydip\n');
    socket.end('Kanjilal\n');
});
tcp_server.listen(8080);
//tcp_server.listen(port);

尽管我注释掉了侦听8080并用命名管道格式替换的行,但它也不起作用。有人请帮忙。谢谢!

1 个答案:

答案 0 :(得分:0)

我假设Azure Server代表Azure Web App,因为在部署它时出现相同的错误。

出现错误消息是因为我们部署了TCP服务器,而Web应用程序应该是HTTP服务器,它可以处理HTTP请求并发送回响应,例如显示html页面。网络模块创建的TCP服务器不具备此功能。

  

我能够在本地PC上完美运行以下代码。

如果我使用node运行代码片段,它将起作用。

当我尝试在VS中将其作为Azure Nodejs Web应用程序运行时,我通过使用除process.env.port(1337)以外的指定端口(例如8080)来使它工作,没有此端口,则无法将其识别为Web应用程序这样浏览器中就不会启动任何Web服务器。

如果只想使用套接字连接,建议您使用socket.io module,它可以将套接字连接到HTTP服务器。

如果必须使用此TCP服务器,请查看this thread,尝试使用Azure云服务。

相关问题