问题标签 [clientwebsocket]

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 回答
5373 浏览

c# - ClientWebSocket.ConnectAsync 崩溃,没有任何错误信息

我正在尝试WebSocket从 C# 控制台应用程序连接到 API。

我的代码在ConnectAsync方法上崩溃,它不会掉入catch block或给出任何错误。

这是我的代码

崩溃的应用程序await clientWebSocket.ConnectAsync(serverUri, cancellationTokenSource.Token);甚至不属于 catch 块

我将 connectAsync 行更改为如下

现在它下降了catch 块,但有以下异常

请求被中止:无法创建 SSL/TLS 安全通道。

堆栈跟踪

然后我在方法开始之前添加了以下行

新异常

无法连接到远程服务器远程服务器返回错误:(400)错误请求。

堆栈跟踪:

0 投票
0 回答
890 浏览

c# - 使用 js 和 C# 连接到 websocket api

我正在尝试在此地址连接到 websocket api:wss://ws.cex.io/ws/

如果我使用 javascript 代码和 WebSocket 对象,一切都很好。

如果我使用 C# 代码,使用 ClientWebSocket 类,当我尝试连接时,我得到“无法访问远程服务器”错误。与我在 js 代码中使用的相同 url 完全相同。我尝试将 url 放入浏览器并得到相同的无法到达服务器错误,所以我很确定我应该在我的 c# 代码中使用一个标题或类似的东西。谁能告诉我我的 c# 代码中缺少什么?谢谢

js代码(建立连接):

c#代码(找不到服务器)

0 投票
0 回答
780 浏览

c# - C# ClientWebSocket 连接错误后重试

有什么方法可以知道 ClientWebSocket 连接是否关闭/断开?我在 C# 中使用 slack RTM api,有时由于连接问题,连接从服务器关闭,然后我想重试连接。

我正在像这样连接到 websocket 服务器

0 投票
1 回答
3209 浏览

asp.net - Asp.Net 作为客户端打开 websocket

在我的应用程序中,我使用 SignalR 通过我的客户进行消息传递。然而,该应用程序有一个到另一个服务器的 websocket 连接,用于通知如下:

我想做的是从我的 Asp.Net 应用程序建立这个连接,并通过将所有传入消息推送到正确的客户端来自己处理所有传入消息。但是,我没有找到这种实现的示例。我找到的所有示例都是关于设置从我的服务器到客户端的 websocket 连接。(我不得不提一下,我对异步函数不是很熟悉,所以可能我有一些与这个事实相关的错误)

更新

根据我发现的最好和(可能)最简单的方法是ClientWebSocket

试图找到一些例子我发现了这个:Websocket - Server Using HttpListener and Client With ClientWebSocket

从这个例子看来,我可以创建一个到我想要的端点的 Websocket 连接。这就是我所做的

在我处理 signalR 方法的 javascript 文件中,我插入了应该从 signalR 触发的 onMessage 方法。(就像我插入所有由 signalR 处理的方法一样,它们工作得很好。)

根据我所做的,目前的结果是:

  1. 我的 websocket 连接正确打开
  2. 从那里我的调试器进入await Task.WhenAll(OnMessage(webSocket));
  3. 之后我的调试器在行中等待var result = await webSocket.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);
  4. 当从服务器发送消息时,我的调试将继续正确地得到结果。

我的问题和疑问是:

  1. 在某些时候触发了我的Connect方法的 finally,其中 websocket 被释放并且我的监听器被释放。(发送的任何消息都不再从 中捕获await webSocket.ReceiveAsync)。在什么情况下会发生这种情况,我应该寻找什么?

  2. 收到消息后,我将 json 结果正确反序列化为 WebSocketNotification,但我的 javascript 函数 onMessage 永远不会触发。我错过了什么?

更新 2 关于第二个问题,我通过更改使其工作

我觉得这很奇怪,因为我使用 signalR 的报告中心在服务器端的所有方法都是首字母大写的 camelCase,而客户端的所有方法都是简单的 camelCase。为什么这个案例不同?我将不胜感激。

更新 3

我像这样在我的 OnMessage 方法中插入了一个 try catch

从我在 Connect 到 finally 并被处理之前得到的错误中,我得到以下错误和堆栈跟踪

我想我应该可以处理它并可能再次打开连接。现在几乎这是我唯一的问题(如果没有其他要寻找的):

这是最好的方法吗?我应该检查更多关于我的连接关闭的原因吗?

0 投票
3 回答
4529 浏览

c# - 使用 ClientWebSocket .net 核心测试 TestHost.WebSocketClient

我已经按照这个这个这个教程在 .net 核心中构建了一个 WebSocket Web 应用程序。现在我正在尝试使用 Microsoft.AspNetCore.TestHost 对此进行一些集成测试

我创建 WebSocket 的方式

并且 websocket 客户端的创建是在下面的代码中完成的

local是 websocket 服务器上的路径名

启动.cs

无论如何,连接会产生以下错误

我的问题是如何要求ClientWebSocket连接TestHost.WebSocketClient

0 投票
2 回答
8208 浏览

c# - c#检测ClientWebSocket何时断开(关闭)

经过长时间的搜索,我来找你帮助我。

我有一个 WPF 应用程序,使用 ClientWebSocket 类(使用 System.Net.WebSockets)连接到 WebSocket 服务器(NodeJS)。我的应用程序正在运行背景 Windows 应用程序,它第一次连接,然后在 1 分钟的计时器内尝试重新连接(如果尚未连接)。但是当我禁用连接(网络连接)时,我的应用程序没有检测到它,所以每 1 分钟告诉我它已连接。我知道我的代码有问题,并且我不知道如何实现事件处理程序以在连接丢失(websocket 关闭)时得到通知。

我注意到当我连接到服务器时,我必须创建一个会话,然后我收到一个 session_id,现在我连接到 websocket 服务器。

Class1 是我使用 WebSockets 类的库类

在我的 Class2 中,我使用 Class1

对于任何建议,我将不胜感激。我真的被困在这一点上

0 投票
0 回答
95 浏览

javascript - Outlook js 加载项是否可以使用 Web 套接字或类似方法从外部服务器接收推送通知?

我正在尝试使用基于云的 CRM 和用户的 Outlook 日历创建近乎实时的双向同步体验。如果客户在云 CRM 中进行了更改,我的基于云的服务器应该向 Outlook 加载项推送通知,以更新用户的日历以反映最新的更改。我听说 Outlook js 加载项目前使用 IE11(支持 Web 套接字)作为 html/js 引擎。有没有人试过这个?或者 Outlook 是否明确阻止了这种情况?

0 投票
1 回答
2315 浏览

c# - 关闭websocket的最正确方法是什么

在我的 .NET Core 控制台应用程序中,我使用 ClientWebSocket 对象的集合来接收一些数据。当出现问题并发生异常时,我想关闭所有 websocket。

我试图这样做:

但万一socket.State == WebSocketState.Connecting有例外:

System.AggregateException: '发生一个或多个错误。(对于此操作,WebSocket 处于无效状态(“正在连接”)。有效状态为:“打开、关闭接收、关闭发送”)

我知道我可以使用socket.Abort()forWebSocketState.Connecting和 for WebSocketState.Open

问题是这是否是关闭连接的最合适方法 - 使用CloseAsyncforWebSocketState.OpenAbortfor WebSocketState.Connecting

0 投票
1 回答
1739 浏览

python-3.x - ValueError:方案 https 在 websocket 客户端打招呼中无效

我遇到了与这个问题websockets "scheme https is invalid" 类似的问题,但我实际上是在尝试使用 https 问题是我收到了连接指令以从服务器获取数据,并且在该文档中,他给了我列表要连接的服务器。不幸的是,它是https://theirserverurl.com的列表,而不是像往常一样的 wss://。我试图通过以下方式向其中一台服务器打招呼:

我得到的错误是:

有什么解决方案可以在 python 上克服这个堆栈。请帮助我。谢谢!

0 投票
1 回答
5120 浏览

c# - ClientWebSocket 示例挂起

下页显示的示例不起作用: Using c# ClientWebSocket with streams

它挂在以下行:

等待 ws.ConnectAsync(serverUri, CancellationToken.None);

似乎没有建立连接。

请指出使以下代码工作的最简单修改。我不想使用任何 3rd 方工具或库。