javascript - WebSocket 连接超时
问题描述
我正在编写 JavaScript 客户端和 node.JS 服务器之间的 WebSocket 连接。
我的客户代码:
<!DOCTYPE html>
<html>
<head>
<title>Socket Test</title>
</head>
<body>
</body>
<script>
const ws = new WebSocket('wss://mydomain.in:26031/');
ws.onopen = function () {
console.log('WebSocket Client Connected');
ws.send('Hi this is web client.');
};
ws.onmessage = function (e) {
console.log("Received: '" + e.data + "'");
};
</script>
服务器代码:
const net = require('net');
const server = net.createServer((socket) => {
socket.on('data', (data) => {
console.log(data.toString());
});
socket.write('SERVER: Hello! This is server speaking.\n');
socket.end('SERVER: Closing connection now.\n');
}).on('error', (err) => {
console.error(err);
});
server.listen(26031, () => {
console.log('opened server on', server.address().port);
});
我得到的错误:
WebSocket connection to 'wss://mydomain.in:26031/' failed: Error in connection establishment: net::ERR_CONNECTION_TIMED_OUT
我在堆栈溢出中尝试了其他答案,但从我的角度来看,一切似乎都很完美。服务器端口已打开以接受请求。还有什么可能是错的?
解决方案
仅在安装 SSL 时使用“wss://”或者尝试使用 ws://
您也可以尝试使用 Socket.IO 进行套接字连接。
推荐阅读
- apache-spark - 如何将 spark mllib 与结构化流结合使用?
- markdown - 在降价中隐藏带有单选按钮的部分
- image - 如何在鼠标悬停 QML 上突出显示图像
- ionic-framework - 如何将离子模态高度设置为等于其内容
- maven - Maven 使用配置文件部署
- java - 如何在android的MainActivity.java文件中添加代码
- python - python celery AttributeError: 'int' object has no attribute 'upper' 错误
- linux - 找不到与inferior的线程库匹配的libthread_db,线程调试将无法使用
- html - 在网格布局中以百分比设置高度未按预期工作
- typescript - ioredis:如何在与默认 6379 端口不同的端口上运行 Redis 服务器?