问题标签 [ws]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
73 浏览

apollo-client - 如何在生产中使用 apollo 订阅

我现在已经在 Zeit 2.0 中部署了我的 apollo 服务器。所以得到了一个 https 端点,我可以在 apollo 客户端中使用它。但是我的 apollo-server 有订阅并在需要 ws 端点的 apollo 客户端中使用它。

那么有什么建议我现在如何从 Zeit 获取 ws 端点?

0 投票
1 回答
156 浏览

node.js - 防止 Node.js websocket 连接打开(ws 库)

有什么办法可以防止 ws 连接甚至打开?

目前我正在使用这个解决方案:

问题是连接打开了很短的时间,然后关闭。这不是我想要的,因为客户端不应该在没有验证的情况下触发 onopen。

我是否需要在客户端设置一些超时并等待连接状态正确,或者有另一种方法可以在服务器上修复它?

如您所见,我正在使用 ws 库。

0 投票
1 回答
876 浏览

node.js - 如何在 kraken 交换中使用 node,js 维护有效的订单簿

怎么样了?我在 python 中获得了示例订单簿代码(https://support.kraken.com/hc/en-us/articles/360027677512-Example-order-book-code-Python-)并将其转换为 javascript 以在节点中运行. 但是这本书是错误的,它并没有删除所有旧的价格水平。我在下面发送我的代码。我想帮助解决这个问题。

0 投票
0 回答
146 浏览

websocket - 检查是否可以访问 Websocket 地址和端口的命令

我正在寻找类似的命令:

但我也想使用端口,比如google.com:8080

我想知道客户端是否可以在某个端口连接到我的服务器套接字侦听器。

我的核心问题是,100% 的用户能够在 8080 连接到我的 websocket 端口,但只有一位数 x% 能够连接到 2053 的 websocket 端口。这与设备无关。经过研究,我发现某些 ISP 可能会阻止此端口。

0 投票
1 回答
755 浏览

javascript - 了解 ws npm 包中的 wss.clients 对象

我正在使用 Node.js 服务器上的 npm ws 库。我正在查看文档并找到了一种遍历客户端的方法,例如,向使用该wss.clients对象的每个人发送消息:

我最初认为这wss.clients是一个数组,因为它让我可以使用数组原型遍历它forEach(),但是当我尝试wss.clients.find()在它上运行以仅向特定连接发送消息时,出现错误:

我跑console.log(Array.isArray(wss.clients))它说的。当我尝试时console.log(wss.clients),我得到一个看起来像这样的对象:

所以,我的问题是,wss.clients 对象如何能够运行数组原型forEach()?它在没有使用Object.keys()或任何东西的情况下工作。wss.clients.pop()出于好奇,我也尝试过,它给出了另一种类型的错误。

究竟是wss.clients什么?对象还是数组?

0 投票
1 回答
242 浏览

node.js - 使用 websockets 时 mocha 测试未退出,即使使用 websocket.close/terminae

我正在尝试通过在我的 mocha 测试文件中打开 websocket 客户端、连接到 ws 服务器并等待响应来测试我的 websocket 服务器。我向 ws 服务器发送一个 http 请求,然后通过 websocket 向客户端发送一条消息,我在其中存储结果并对其进行测试。

我得到了我想要的响应并且测试通过了,但是 mocha 测试本身并没有终止,我不得不手动关闭它。

我已经读过这个- 解释可能仍然有一些异步进程打开,例如打开的套接字,但我尝试终止套接字,并且我得到了“关闭”事件触发(我得到了我定义的控制台日志消息'close' 事件监听器),但测试仍未结束。

我正在使用 ws (npm)、mocha、chai(用于断言)和 supertest(调用服务器以发送响应)。

版本:

"ws": "^7.3.0",

"摩卡": "^7.0.0",

"柴": "^4.2.0",

"超测"​​: "^4.0.2",

节点:v12.9.1

我知道我可以使用 --exit 标志,正如这个堆栈溢出答案中所建议的那样,但如果可以避免的话,我不希望这样做。

以下是相关代码:

如您所见,我在“after”部分尝试了 ws.close() 和 ws.terminate(),并且都产生了相同的结果:测试没有结束,并且 console.log('after?')在调用 done() 后触发行。

我试图覆盖'onclose'方法并手动触发,但无济于事。

我还尝试在测试本身中关闭 websocket(我的意思是在“it”部分,即使我在语义上不喜欢它) - 但测试套件本身并没有终止,和以前一样。

有没有办法确保在调用 done() 之前正确关闭 websocket?

0 投票
0 回答
135 浏览

javascript - Node.js WebSocket 服务器只接受来自我本地机器的一个客户端

我有一个非常简单的 Node.js 服务器,它为 WebSockets 使用“ws”,但它只接受一个客户端,我认为它是一个多客户端服务器。

这就是我现在用来测试它的程序。简短而简单,但不起作用。

两个客户端都在 Google Chrome 中运行相同的代码(也用 firefox 测试过)代码:

一个客户端将记录打开的连接,每个其他客户端将记录超时、错误和关闭事件。提前致谢

0 投票
0 回答
547 浏览

socket.io - 如何使用 Socket.io v2 手动处理“升级”事件

我正在将一个预先存在的项目从 Socket.io (socket-io / socketio) 转换为普通的 Websockets,我希望在转换过程中同时运行这两个项目。

我期望做什么

以前的解决方案

ws具有出色的文档,准确地显示了如何使用upgrade标头以基于标准的方式执行此操作:

我还发现了一篇关于如何以 Socket.io 专有的方式进行操作的帖子:

我什至找到了一个关于如何将两者与一个非常非常旧的 Socket.io 版本混合在一起的旧参考:

但我不清楚如何将 Socket.io v2s 专有/私有内部实现方式与ws标准头升级技术混合使用。

是否可以只使用老式upgrade事件?如果没有,应对两者竞争的新策略是什么?

看来我能够弄清楚如何处理对每个成功的请求,但最令人费解的部分是如何拒绝两者都不处理的请求。

0 投票
0 回答
22 浏览

node.js - Node WS 可以处理的最大客户端数量是多少?

我正在使用节点 ws(Websocket 库)向客户端提供视频。最终,我希望使网站更加公开,但我在 ws 库中找不到任何关于在任何给定时间可能支持多少客户端的文档。我对〜5没有任何问题,因为这是我现在的标准用例,但我很好奇如果我达到1000+节点是否会成为我的瓶颈,或者它会归结为服务器本身的带宽和规格。

谢谢!

0 投票
3 回答
10459 浏览

javascript - 如何在节点 js 中使用 ws (Websocket) 包创建/加入聊天室

我在服务器端使用ws包,我希望客户端在服务器套接字中创建/加入房间。以及当它们不再连接时如何将它们从创建的房间中删除。PS:我不想使用socketIo。