【问题标题】:how to connect via WebSocket running on Ubuntu server如何通过在 Ubuntu 服务器上运行的 WebSocket 进行连接
【发布时间】: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


    【解决方案1】:

    首先仔细检查 IP 地址是否正确,然后将协议更改为 HTTP,因为您在 HTTP 之上使用它:

    http://49.***:8080/echo

    【讨论】:

      【解决方案2】:

      我没有打开8080端口。那是实际问题)

      【讨论】:

        猜你喜欢
        • 2023-04-06
        • 2020-01-27
        • 2021-04-20
        • 2019-11-12
        • 1970-01-01
        • 1970-01-01
        • 2017-02-03
        • 1970-01-01
        • 2011-05-06
        相关资源
        最近更新 更多