javascript - 无法使用 JavaScript 客户端连接到 Heroku 上的 WebSocket 服务器
问题描述
好的,所以我在 node.js 中使用“ws”模块编写了一个 websocket 服务器,下面是我的代码。
const WebSocketServer = require('ws');
const wss = new WebSocketServer.Server({ port: 8080 })
wss.on("connection", ws => {
console.log("new client connected");
ws.on("message", data => {
wss.clients.forEach(function each(client) {
client.send(data);
console.log('Sent: ' + data);
});
});
ws.on("close", () => {
console.log("the client has disconnected");
});
ws.onerror = function () {
console.log("Some Error occurred")
}
});
console.log("The WebSocket server is running on port 8080");
服务器运行良好,我可以使用new WebSocket("ws://localhost:8080");
本地连接到它。问题是当我尝试在我的 Heroku 应用程序上托管它时,WebSocket
对象检测到服务器很好,并且控制台中没有错误。
问题是WebSocket
对象无法连接到服务器。当我在控制台中检查对象时,它会将套接字的 ReadyState 属性显示为“0”(仍处于连接状态)大约五分钟。然后,套接字会自行关闭(ReadyState 3,已关闭)。对我来说最奇怪的是它没有抛出任何错误。
有人可以解释一下到底发生了什么,我有点想弄清楚这一点。
非常感谢所有帮助。
谢谢,
阿迪
解决方案
推荐阅读
- excel - 排序将我的数据与上面的空单元格一起放置
- algorithm - 在有向图中查找所有循环路径
- exception - 红旗方法不好吗?
- c# - ArrayPool的使用
- python-3.x - 转换文本文件中的值并在 python 中创建新的文本文件
- wordpress - 通过 .htaccess 文件限制对 Wordpress 登录的访问不会阻止任何人
- c++ - 位标志是 std::byte 的预期用途吗?
- javascript - 在 python 中,我可以编写 myarray[:3] 来寻址列表的元素。是否可以在 javascript 或节点中使用?
- cordova - 使用科尔多瓦签署 apk 时发出警告
- javascript - JavaScript:日期对象在发送到后端时转换为字符串