我是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
任何线索?
谢谢!
答案 0 :(得分:-1)
请问您在哪里找到了Plesk上的Nodejs日志?你怎么能在plesk上进入控制台?
作为对你问题的回答:
可能是您提供的端口未配置为允许从Web到节点应用程序的流量。这就是为什么我建议使用
var port = process.env.PORT || 9000;
此行将尝试使用可在包含用户环境数据的对象中配置的端口。