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

.net - 在 ClientWebSocket 中设置“User-Agent”HTTP 标头

我需要在ClientWebSocket对象中设置“User-Agent”HTTP 标头,但这是不可能的。尽管有一个ClientWebSocket.SetRequestHeader(header,value),但如果我尝试设置该标头,该方法将失败:System.ArgumentException: This header must be modified using the appropriate property or method.

ClientWebSocket源代码,似乎MS人完全忘记了这一点:

所以我看到的唯一方法是用反射替换这个方法并正确地重写代码(检查特殊的头文件并使用特殊的属性,比如httpWebRequest.UserAgent)。

还有其他更好的主意吗?

0 投票
0 回答
2651 浏览

c# - 无法使用 ClientWebSocket 连接到远程服务器

我正在尝试使用以下 C# 代码连接到 localhost:9222 上的 Web 套接字服务器:

在最后一行,我得到了Unable to connect to the remote server,内部异常The remote server returned an error: (404) Not Found.

但是,我有这个连接到同一个 WebSocket 的 JavaScript:

它在 IE 和 Chrome 中都很好用。

我没有使用任何代理。

在 C# 代码中是否有我错过的配置?

我该如何调试呢?

更新:

使用 WebSocket4Net 而不是 .NET 4.5 ClientWebSocket,我得到HTTP 1.1 500: Internal Server Error. 但是,我也不确定如何调试它。

0 投票
0 回答
865 浏览

c# - Xamarin ClientWebSocket ...连接丢失后无法重新连接

我正在使用 ClientWebSocket 开发 Android 应用程序。

当我启动应用程序时,如果服务器正在运行,一切正常。

我停止服务器后,客户端无法重新连接到服务器,也无法接收消息。我注意到在我停止服务器后,clientwebsocket 的状态仍然是“打开”!

如果我启动应用程序然后启动服务器,客户端无法连接!

这是代码:

准备客户端:

连接方式:

收听收入消息:

在 MainActivity 中,我使用计时器进行重新连接:

怎么了?!

感谢帮助

0 投票
1 回答
1397 浏览

.net - System.Net.WebSockets.ClientWebSocket 的线程安全

文档不清楚System.Net.WebSockets.ClientWebSocket该类的线程安全性。

多线程同时调用SendAsync方法安全吗?</p>

0 投票
0 回答
1942 浏览

c# - C# 中的 WebSocket 与 ClientWebsocket

我有一个 C# 类来管理服务器和 win 表单应用程序之间的连接。该类建立一个消息队列,并通过 Socket 发送和接收数据。我的初衷是在客户端和服务器上使用相同的类来管理消息传递。但是,在服务器上,Web Socket 对象是 System.net.websocket,而在客户端,它是扩展 WebSocket 的 ClienWebSocket。我尝试将 WebSocket 对象转换为 ClientWebSockets,因为一个继承了另一个,但这不起作用。无论如何,我可以获得一个通用的 WebSocket 对象类型,它可以在连接的两端工作吗?

谢谢

0 投票
1 回答
6179 浏览

c# - 使用 .Net ClientWebSocket 从 WebSocket 获取数据

我需要从 WebSocket 收集数据。

如果我尝试使用此站点测试 websocket:http ://www.websocket.org/echo.html我可以毫无问题地连接和发送消息,但是当我尝试使用 .Net Framework 库连接到 websocket 时,我得到:

System.Net.WebException:内部服务器错误 (500)。

我用来连接的代码是这样的:

如果我尝试连接到任何其他网络套接字,代码运行良好......

与其他 websocket 的不同之处在于地址以“ wss ”而不是“ ws ”开头(认为它是因为安全连接)。

如果我使用 Chrome 之类的浏览器进行测试,websocket 连接可以工作,但不能在 .Net 中,我是否必须添加一些标头才能模拟浏览器代理?

感谢支持

0 投票
1 回答
1538 浏览

c# - 使用 C# .Net 从 WebSocket 抓取数据

我需要“一次”从 websocket 中抓取数据。

我的意思是我不需要从源头连续获取数据,但我需要一次获取数据并退出详细说明。

我不需要异步任务,我只需要像一个简单的 API 一样使用它。

我正在为网络搜索而苦苦挣扎,但没有找到任何解决方案。

感谢支持

0 投票
1 回答
9469 浏览

websocket - 如何使用 websocket-sharp 创建客户端?

我正在使用ClientWebSocket订阅 REST 服务,但希望能够使用 websocket-sharp 代替。

这是我的 websocket-sharp 尝试。当ws.Connect(); 被调用时,我收到Not a WebSocket 握手响应错误消息。在工作代码中,我必须设置 Origin、SubProtocol 和 RequestHeader。我认为我为 websocket-sharp 代码正确地做到了这一点,但请求标头除外。我一直找不到指定身份验证的工作示例。

0 投票
1 回答
12428 浏览

c# - 为 WebSocket 响应选择缓冲区大小

我正在编写一个连接到 websocket 服务器并接收未知大小的 JSON 响应的 C# 应用程序。我正在ClientWebSocket为此目的使用该课程。

从客户端接收数据的唯一方法似乎是使用该ReceiveAsync方法,该方法以 aArraySegment<byte>作为参数:

问题是,因为我不知道 JSON 响应会有多大,所以我不知道使支持该 ArraySegment 的缓冲区有多大。在这种情况下,我指定了 1000 字节,这太小了,并且响应被截断。但是我担心如果我将缓冲区大小设置为任意大(1,000,000 字节?),我会用掉比我需要的更多的内存。

如何在不知道响应大小的情况下选择缓冲区大小?

0 投票
0 回答
801 浏览

c# - 如何触发 ClientWebSocket 关闭

基本上我想在执行此代码时关闭此 ClientWebSocket 时触发

是否有任何最佳实践或另一种方法可以关闭 websocket 中的当前打开连接