【发布时间】:2020-04-23 04:48:24
【问题描述】:
我已经获得了一个带有支持 nodejs 的 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 乘客 用于共享主机。我遇到的问题可以由使用 Nodejs 在共享主机上工作并了解 phusion Passenger 工作方式的人解决。
【问题讨论】:
-
您是否尝试使用远程地址而不是 mydomain.com? ws://remote-addr:2088
-
@ritesh_NITW 是的
-
由于端口已经为入站/出站打开,可能是 Windows Defender 防火墙阻止了?如果是windows服务器,你能检查一下控制面板->系统和安全->windows Defender防火墙->允许的应用程序列表中是否有node.js。
-
@RiteshKumarGupta os 是 linux centos 。但是是共享主机!
-
共享主机的问题是:它们前面肯定有一个反向代理或负载均衡器。尽管他们已经为您打开了入站端口,但我不确定负载均衡器是否将请求进一步转发到服务器。我会回来的。
标签: node.js websocket cpanel passenger shared-hosting