问题标签 [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 投票
2 回答
308 浏览

node.js - 使用 express 初始化 ws 服务器

我一直在努力寻找以下代码中的错误来源:

(我在下面有用于连接等的代码,这与我认为的这个问题无关)

运行此程序后,我在浏览器中收到来自客户端的以下错误:

与“ws://localhost:3000/”的 WebSocket 连接失败:在收到握手响应之前连接已关闭

令我困惑的是,如果我进行以下更改,代码就可以工作:

这种方法的问题是在现有的.use之前添加另一个.use不起作用,这是访问静态文件所必需的(即javascript作为它自己的文件而不是在HTML文件中)

为什么在这两个示例之间更改我的代码会破坏它?我能做些什么来解决这个问题?

谢谢

0 投票
0 回答
85 浏览

java - 是否有任何方法可以将 CompletableFuture 响应返回给 SoapUI

由于方法,我正在向肥皂网络服务提出请求CompletableFuture#runAsync。该请求是从 SoapUI 客户端发送的。我在日志中看到了响应。但是在 SoapUI 客户端上不会查看响应。

是否可以将 a 返回CompletableFuture到 SoapUI?

0 投票
2 回答
951 浏览

node.js - 使用 WebSockets (ws) 连接到 Rcon

我是在我的 electronjs 项目中使用 nodejs 中的 web 套接字的新手。我的目标是连接到我的服务器正在运行的连接,我已经正确设置了所有内容,端口、密码和本地主机,似乎都可以使用另一个包。但是当我尝试自己创建它时,我似乎无法让它工作。

我上面所拥有的是我到目前为止所拥有的,我试图连接的服务器的控制台说它正在从我的电脑获得连接,但除此之外没有中继任何信息。

这是我在 electronjs 控制台中遇到的错误:

任何帮助将不胜感激。

0 投票
2 回答
92 浏览

javascript - websocketserver应用程序中的范围问题

我正在尝试在 javascript 中的客户端应用程序上设置多个 websocket。我的 websockets.js 脚本应该连接到服务器的 websocketserver,然后为事件发射器分配相应的功能。

因为我在同一个网页上有多个连接对象,所以我想我只是制作一个经常使用“this”的函数,这样我就可以写出:

问题是当一个事件被触发时,函数已经失去了它的作用域。我在这个 onopen 回调中收到一个错误,提示“无法返回“未定义”的属性 'readyState'。

当我考虑在同一个网页上看到了多少个 websocket 时,我意识到我显然做错了。下面是我的 websockets.js 脚本。请随时指出我完全违反了关于 websockets 的良好编码实践,我一开始只是想测试 websockets,但现在我真的想知道我应该如何在一页上使用多个 websockets。

0 投票
1 回答
754 浏览

javascript - WebSocket 在 Vue/Node 应用程序中停止工作

我有一个 Node/Vue 应用程序。我正在使用来自 Binance 的 WebSocket,这是一个加密交换。当我记录它们时,我可以在服务器控制台上看到引号,我可以在客户端停止记录它们之前将它们发送到浏览器一小段时间。

浏览器仅使用WebSocketAPI 节点使用ws

节点代码,我正在运行它作为它自己的服务,就像它一样。

在客户端,我使用的是 Vue,在 app.js 文件中我有这个问题created

现在我只听上面app.vue文件中的控制台。

我在浏览器控制台中看到的是很多引号,然后它们在一两秒后停止。有时可能有超过一千个引号。然后有时我console.log('created')会在 的子组件中看到一个app.vue。在许多情况下,这是在数百次引用之后控制台中的最后一件事。

在服务器的 console.log 中,我看到通过一页刷新创建了很多会话。如此之多,以至于它填满了我的控制台。

所以我不确定我是否正确地创建了连接,我不确定 Vue 是否以某种方式停止了 console.log 的?

我在任何地方都看不到任何错误,并且在我的服务器控制台中,Binance API 一直在继续流式传输。

0 投票
2 回答
172 浏览

node.js - 为什么要在 node/express 中的 websocket 服务器中挂接 httpserver?

在创建 WS 服务器的过程中,我看到了很多挂钩 http 服务器的示例,或多或少类似于以下内容

或者

我不明白为什么。这样做有什么好处吗?

经典的 WS 设置有什么问题,就像这样

为什么我不应该只使用没有 http 服务器的 WS 服务器?

0 投票
0 回答
1631 浏览

node.js - 在 websockets 和 node/express 中创建路由

我试图以某种方式在我的节点/快递中分离我的 WS 代码。我想在我的 WS 代码中有一些路由,比如 express 的 API 路由。我正在使用ws 模块

我想我可以使用像express-ws这样开箱即用的东西,但是有没有办法在不使用任何额外的 npm 模块的情况下做到这一点?我不想部署另一个模块,因为更少的模块意味着更小且更易于维护的项目。另外,如果我在没有模块的情况下这样做,我会更好地理解 WS 是如何工作的。

我想我可以将 WS 的某些部分放在一个单独的 js 文件中,将其导出,然后将其包含在我的app.js. 但是我是否还需要在该文件中导入 WS,因为我需要.on('something'事件?

通过分离 WS 层,我还可以使用 WS 路由,为不同的任务设置不同的端点。如何创建 WS 路由?我也许可以使用pathws 模块?

var wss = new wsserver({ port: 5001 , path: "/flip"})

并将代码移动flip到另一个文件?我不知道该怎么做,根据我做的一些测试,同一个 WS 端口不支持多路径

谢谢

0 投票
1 回答
167 浏览

html - Websockets 处理丢失的包裹

默认情况下,Websockets 是否具有处理丢失数据的机制?

在这里过度简化,假设我从服务器(node.js)发送3个包到客户端(vue js)。2 号包裹丢失。

有没有办法重新发送它或至少通知客户一个错误?或者 WS 根本不支持这样的东西,因为它的流性质?

即使 WS 不支持它,是否有节点模块支持它?

谢谢

0 投票
1 回答
63 浏览

java - Playframework JavaWS 记录正确的 curl 脚本,但无法正常工作

我正在尝试通过网络服务发送电子邮件。AhcCurlRequestLogger当我将其粘贴到终端时,记录的 curl 脚本工作正常。但服务方法不起作用。代码不输入wsResponse部分。

java函数:

卷曲脚本:

我没有任何错误日志。我正在使用 playframework 2.7.3 版本。我虽然那个ssl验证可能会导致这个。所以我将 ssl 证书链添加到 trustStore。这没用。然后我删除它并添加

application.conf. 它也不起作用。

0 投票
0 回答
133 浏览

javascript - 如何在基于事件的 websocket 实现中分离客户端?

我正在编写自己的基于事件的 websocket 包装器,基于节点的 ws 包,并且在服务器端分离客户端时遇到了麻烦。

我设置了一个测试场景,我的客户端向服务器发送一条消息,服务器向同一个客户端发送一个“ping”。

发生的情况是我的测试场景与第一个连接的客户端完美配合,但是一旦另一个客户端连接,来自第一个客户端的消息将 ping 到另一个客户端(来自第二个客户端的消息将正确地 ping 到第二个客户端)。

感觉 WebSocket 以某种方式在两个客户端之间共享,但我似乎无法找到发生这种情况的位置。

任何帮助将不胜感激,我确定我遗漏了一些明显的东西。