Plesk上的NodeJS websocket服务器无法回答

时间:2017-07-28 15:35:11

标签: javascript node.js plesk

我是NodeJS的新手,我刚刚在Plesk Onyx 17.5.3服务器上设置了一个子域来使用它。 我做了一个简单的websockets聊天应用程序,但它没有工作。

如果我通过命令行启动应用程序:

node server/server.js

该应用程序完美无瑕。 server.js中的代码是:

"use strict";

process.title = 'node-chat';

const WebSocketServer = require('ws').Server;
const PORT = 9000;
const wss = new WebSocketServer({port: PORT});

console.log('WSS');

let messages = [];
wss.on('connection', function (ws) {
  console.log('WS connection');
  messages.forEach(function(message){
    ws.send(message);
  });
  ws.on('message', function (message) {
    messages.push(message);
    console.log('Message Received: %s', message);
    wss.clients.forEach(function (conn) {
      conn.send(message);
    });
  });
});

wss.on('error', function(obj){
  console.log('WS error');
  console.log(obj);
});

console.log((new Date()) + 'server.js started');

如果我使用Plesks启动应用程序"重新启动应用程序"它没有用。做一个ps aux我可以看到这个过程正常。在日志文件中,我看到它已经启动:

App 17579 stdout: WSS
App 17579 stdout: Fri Jul 28 2017 13:52:44 GMT+0200 (CEST)server.js started

但没有日志说websocket服务器已启动或崩溃,它只是不起作用。如果我尝试将客户端js应用程序连接到服务器会出现错误,说它无法连接到服务器:

WebSocket connection to 'ws://server_address:9000/' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED

任何线索?

谢谢!

1 个答案:

答案 0 :(得分:-1)

请问您在哪里找到了Plesk上的Nodejs日志?你怎么能在plesk上进入控制台?

作为对你问题的回答:

可能是您提供的端口未配置为允许从Web到节点应用程序的流量。这就是为什么我建议使用

var port = process.env.PORT || 9000;

此行将尝试使用可在包含用户环境数据的对象中配置的端口。