问题标签 [websocket-sharp]

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

c# - 如何在 C# 中使用 websocket-sharp 禁用强制延续帧

在 C# 中使用 WebSocket-Sharp 库构建 WebSocket 客户端时,我发现发送消息无法正常工作。

如果我向服务器发送一个特别长的字符串作为文本框架,WebSocket-Sharp 库会将其截断为 1,016 个字符,然后将其作为文本发送,然后将其余数据继续放在一个连续框架中并将其转换为二进制而不是文本.

有什么办法可以禁用这种行为?在我的情况下,它使库无法使用,因为服务器在延续帧之后没有响应。

这是取自 Fiddler 日志的示例:

0 投票
1 回答
5253 浏览

c# - C# Websocket-Sharp - 如何识别客户端

我使用 websocket-sharp(https://github.com/sta/websocket-sharp)(仅限服务器端)。

我可以将许多客户端应用程序连接到我的 websocket 服务器。每个客户端发送一个 ID(我们称之为它CLIENT_ID)。

我想知道哪个 websocket 会话与CLIENT_ID.

IWebSocketSession暴露ID(我们称之为SESSION_ID)。

我试过的:

首先,我有一个存储类,用于存储每个SESSION_ID他的CLIENT_ID(一个简单的字典)。

当我收到来自客户端应用程序的消息时,我将其存储SESSION_IDCLIENT_ID我的字典中。

因此,当我想向所有会话发送消息时,CLIENT_ID == XXX我可以使用这本字典。这工作正常...

但是会话只是暂时的。一个客户端可以使用多个会话。因此,对于单个客户,我的字典中很快就会有很多输入。当我向字典中的所有会话发送消息时CLIENT_ID == XXX,我将多次向同一个客户端发送相同的消息。

我的问题是:如何使用 websocket-sharp 注册唯一客户端?我应该使用哪个属性?

编辑:即使有一个唯一的客户端,它每 20 秒更改一次会话的 ID。这可能是为 ping 创建的新会话。

0 投票
1 回答
387 浏览

c# - 从会话中获取行为实例?

如果我理解正确,每次有连接请求时,都会初始化一个 Behavior 实例。所以我将一些信息保存到扩展的 Behavior 类中。但是,现在我只想向某些连接的客户端发送消息(例如,具有属性的行为实例productBehavior.Type == ProductType.Main)。

我怎样才能做到这一点?

0 投票
1 回答
1974 浏览

c# - WebSocketSharp - 发送文件

我可以看到 WebSocketSharp 实现了 Send(FileInfo file) 的重载。

https://github.com/sta/websocket-sharp/blob/master/websocket-sharp/Server/WebSocketBehavior.cs

如果我使用它从服务器发送文件,如何在客户端接收和写入该文件?我在 WebSocket 类中找不到任何方法来执行此操作。

谢谢

0 投票
1 回答
3520 浏览

unity3d - Unity3d 中的 Signalr 和 WebSocketSharp

我目前已经构建了一个简单的 Signalr Hub,我正在将消息从 Unity5 项目推送到该中心。鉴于 SignalR2 客户端不适用于 Unity5,我正在使用 websocketsharp 来拦截 websocket 帧。消息已成功推送到集线器,但是当我尝试调用客户端上的方法时,我没有得到有效负载字符串,只有消息标识符{"I": 0}

浏览 SignalR 文档,看起来这是最后发送的,但我不知道如何才能得到它。我确信它很简单,但对于我的生活,我无法弄清楚。

更新

根据要求,我在下面添加了项目的代码......

SignalRClient.cs

MyHub.cs

0 投票
1 回答
1496 浏览

unity3d - 通过unity3d中webgl资产的简单websockets使用websockets,可以连接但不能传输消息

只是在我的 Mac 上遇到问题,尝试使用此https://www.assetstore.unity3d.com/en/#!/content/38367通过 Web 套接字发送字符串

下面的许多改编代码主要来自这里http://www.codepool.biz/how-to-implement-a-java-websocket-server-for-image-transmission-with-jetty.html和 web socket sharp echotest 示例.

我可以连接,但在我的 Jetty 服务器控制台窗口(在运行 java(eclipse) 的 ws 服务器上)中没有字符串的迹象。

我现在基本上只是试图通过 websocket 连接与统一编辑器 (5) 向我的服务器发送一个“1”,以提示服务器开始发送编码为字节数组的 PNG 文件,这样我就可以把它们放回去一起在 C# 脚本中并将它们应用于纹理。

这是脚本,我想将它附加到像飞机或立方体这样的游戏对象上,并显示从我的 Jetty 服务器通过 Web 套接字发送的更新图像,但目前我只是试图发送消息和看到它在我的 Eclipse 控制台窗口中弹出。

...以及来自码头服务器的相关代码,但这有效,我已经用一些 javascript 对其进行了测试,我可以将 PNG 加载回浏览器窗口,所以我在 Unity 中肯定做错了什么

任何帮助都将不胜感激,多年来一直潜伏在这里,希望能尽快上台,我也可以帮助其他人。本尼迪克特

编辑:这是我在 Unity 中的控制台错误消息

FormatException:长度无效。System.Convert.FromBase64String (System.String s) (在 /Users/builduser/buildslave/mono-runtime-and-classlibs/build/mcs/class/corlib/System/Convert.cs:146) EchoTest+c__Iterator0.MoveNext ( ) (在资产/示例/EchoTest.cs:11)

我很确定问题来自于 webgl 的 websocket 尖锐。我需要将消息作为字节数组发送。

0 投票
0 回答
228 浏览

c# - WebSocket-Sharp 事件的匿名回调方法的编译器错误

您好我正在尝试使用 websocket-sharp 打开一个套接字以连接到我的 node.js 后端,但我遇到了下面列出的编译器错误。但是,所有使用 websocket-sharp 的示例似乎都完全相同。我在这一点上不知所措,希望有人能指出我正确的方向。

编译器错误委托 System.Func' 不接受 2' 参数

===完整代码=== https://gist.github.com/MicahRamirez/986f8168b9fa8c4c1e9e

===WebSocket-Sharp Ex 用法=== https://gist.github.com/MicahRamirez/0c23d6aa1b9bf8e5613aO

0 投票
1 回答
1718 浏览

c# - 使用 ibm-watson 服务 C# 的语音到文本

我正在尝试使用 ibm-watson 服务和 websocket-sharp 发送语音到文本的音频文件 (.wav)。我正在使用 80kb 的示例 .wav 文件在 asp.net mvc 操作中执行此操作。遵循本教程Speech-to-text/websockets

我正在做以下事情

发送启动操作后,我的 websocket 的 readystate 保持打开状态,但是一旦执行发送字节的行,我就会在 OnMessage 事件中收到以下内容

并且 readystate 将自身更新为“已关闭”。

我也尝试过发送 FileStream,它在 chrome 和 firefox 上都这样做。对解决方案的任何帮助或指导都将是非常可观的。

谢谢

0 投票
1 回答
1119 浏览

c# - 确定用于连接 websocket 服务器的 IP 地址(websocket-sharp)

我有一台 linux 机器,配置了多个 ip 地址。我使用以下代码创建连接。

这一切正常,但是我如何确定 websocket-sharp 用于连接服务器的 ip 地址?

0 投票
1 回答
7504 浏览

c# - 为 .NET 使用 websocket-sharp 服务器如何关闭 WebSocketBehavior?

我正在尝试将websocket-sharp用于项目,并且服务器需要能够删除 websocket 连接。

连接由您继承的 WebSocketBehavior 类表示。上没有Stopor CloseorDisconnect方法WebSocketBehavior。我能找到的最接近的是

所以我尝试向我的覆盖类添加一个方法

但这会在打开日志记录时导致错误

服务器如何断开/关闭 WebSocket 连接?