【发布时间】:2022-01-31 17:41:45
【问题描述】:
我有 hetzner 服务器,我试图在其上运行 WebSocket。不幸的是我得到了堆栈所以这是我来自test.js的代码)
const https = require('https');
const fs = require('fs');
const ws = require('ws');
const options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem'),
};
let server = http.createServer(options, (req, res) => {
console.log(req);
res.writeHead(200);
res.end();
});
server.addListener('upgrade', (req, res, head) => console.log('UPGRADE:', req.url));
server.on('error', (err) => console.error(err));
server.listen(8080, () => console.log('started on 8080'));
const wss = new ws.Server({ server, path: '/echo' });
wss.on('connection', (ws) => {
console.log('client connected');
ws.send('Hello');
ws.on('message', (data) => ws.send('Receive: ' + data));
});
wss.on('error', (e) => console.log(e));
运行服务器后,我在控制台started on 8080 中收到消息。没有别的......我试图测试它,但我总是得到没有代码的错误。看起来我测试它的服务找不到 WebSocket。实际上连接到服务器时可能会出现问题。
我不确定我应该使用哪个路径字符串。我有主机名 ubuntu-s**** 和服务器 IP 49.****。我对'wss://ubuntu-s***:8080/echo' 和'wss://49.***:8080/echo' 做了很多尝试,但都没有给出任何结果
我在控制台中仍然没有客户端尝试连接的消息:(此外,我尝试在本地服务器上运行它(当然我删除了 SSL 证书连接并将服务器协议更改为 HTTP)并且它运行良好!!!
非常感谢您的回复
UPD:我在尝试连接 ws WebSocket connection to 'ws://49.***:8080/echo' failed: 时收到消息
【问题讨论】:
标签: node.js websocket server nodejs-server