无法在浏览器中使用Node.js从网站连接到Websocket

时间:2018-07-10 14:43:02

标签: node.js websocket chat

有人能在Fastcomet上使用Node.js和websockets创建具有实时通信(聊天)功能的网站吗?我已经向Fastcomet提交了很多票,但是我们一直在圈子里逛逛。

我的目标是在www.mywebsite.com/socketio上将类似https://davidwalsh.name/websocket的内容放到网上

当我在浏览器中打开http://127.0.0.1:3000/时,我所有的测试都在本地工作。

我首先设置了一个Node.js app from cpanel

然后fill in the details

此过程为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

有人有想法吗?

1 个答案:

答案 0 :(得分:0)

您是否尝试过在public_html文件夹之外创建项目?

尝试创建一个文件夹(例如:home / user / socket_test),然后将代码放在该文件夹中,然后将node.js应用程序指向该路径。

端口会在“ Phusion Passenger”中自动映射,这意味着您在程序中指定的任何端口都会被Phusion Passenger自动反向映射。

将3000端口用于节点应用程序,example.com / app将把8080端口映射到3000端口。

我正在使用Fastcommet共享托管计划,并运行一个节点表达的RESTful API,并且运行良好。