我获得了一个支持Node.js的cpanel共享主机。我可以通过“设置Node.js应用程序”定义一个Node.js应用程序。
我想创建一个WebSocket。他们已经为我打开了2088端口。
这是我的WebSocket服务器代码:
const http = require('http');
const WebSocket = require('ws');
const server = http.createServer();
const wss = new WebSocket.Server({ server });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something');
});
server.listen(2088);
好的,我运行我的代码,然后从客户端向服务器发送此请求:
socket = new WebSocket('ws://mydomain.com:2088');
socket.addEventListener('open', function (event) {
socket.send('Hello Server!');
});
socket.addEventListener('message', function (event) {
console.log('Message from server ', event.data);
});
但是,我一直收到超时错误,无法连接到Websocket服务器。
似乎在共享cpanel主机上建立能够监听特定端口的websocket服务器与通常情况有些不同。
我已经在互联网上搜寻了很多关于cpanel nodejs的资料,只发现如何使用cpanel菜单构建node.js应用程序。我找不到任何关于如何在共享cpanel主机上创建websocket的说明。所有的来源都说可以使用cpanel提供的nodejs来创建websocket。
那么,有没有人曾经拥有过带有Nodejs功能的共享主机并在其上运行websocket?
将主机出售给我的管理员是完全白痴,他们对此一无所知,也无法帮助我...
提前感谢您的帮助。
更新:
在共享主机中运行Node.js和Python的方法与它们在VPS中运行的方式不同。根据我发现的,共享主机使用Phusion Passenger。知道关于Phusion Passenger工作方式的人可以解决我遇到的问题。