有人能在Fastcomet上使用Node.js和websockets创建具有实时通信(聊天)功能的网站吗?我已经向Fastcomet提交了很多票,但是我们一直在圈子里逛逛。
我的目标是在www.mywebsite.com/socketio上将类似https://davidwalsh.name/websocket的内容放到网上
当我在浏览器中打开http://127.0.0.1:3000/时,我所有的测试都在本地工作。
我首先设置了一个Node.js app from cpanel
此过程为Phusion Passenger创建一个.htaccess文件。
甚至尝试过RewriteRule ^(。)http://localhost:3000/ $ 1 [P] *
当我访问www.mywebsite.com/socketio时,出现以下错误:
http://www.mywebsite:3000/socket.io/?EIO=3&transport=polling&t=1531226905601-0 无法加载资源:net :: ERR_NAME_NOT_RESOLVED
这是另一个失败的测试:
服务器index.js(Nodejs状态:已启动)
var http = require('http');
var server = http.createServer(function(req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
var message = 'It works!\n',
version = 'NodeJS ' + process.versions.node + '\n',
response = [message, version].join('\n');
res.end(response);
});
server.listen();
const WebSocket = require('ws');
const wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws) {
ws.on('message', function incoming(message) {
console.log('received: %s', message);
});
ws.send('something')
});
client index.html
<html>
<head>
<script>
var sock =new WebSocket('ws://' + window.location.host+"/chat" );
</script>
</head>
<body>
</body>
</html>
甚至尝试过
var sock =new WebSocket('ws://' + window.location.host+":8080/chat" );
我还将index.js和index.html的端口8080更改为3000
我什至从index.js和index.html中删除了端口
通过浏览器访问:
http://www.mywebsite.com/chat/index.html
错误:
与'ws://www.mywebsite.com/chat'的WebSocket连接失败:WebSocket握手期间出错:意外的响应代码:500
有人有想法吗?
答案 0 :(得分:0)
您是否尝试过在public_html文件夹之外创建项目?
尝试创建一个文件夹(例如:home / user / socket_test),然后将代码放在该文件夹中,然后将node.js应用程序指向该路径。
端口会在“ Phusion Passenger”中自动映射,这意味着您在程序中指定的任何端口都会被Phusion Passenger自动反向映射。
将3000端口用于节点应用程序,example.com / app将把8080端口映射到3000端口。
我正在使用Fastcommet共享托管计划,并运行一个节点表达的RESTful API,并且运行良好。