当前位置: 首页 > 知识库问答 >
问题:

无法通过WebSocket发送二进制数据

周翰池
2023-03-14

我正在开发一个查看器应用程序,其中服务器捕获图像,执行一些图像处理操作,这需要在客户端显示在HTML5画布上。我写的服务器是在VC和使用http://www.codeproject.com/Articles/371188/A-Cplusplus-Websocket-server-for-realtime-interact.

到目前为止,我已经实现了所需的功能。现在我需要做的就是优化。引用是一个用来发送字符串的聊天应用程序,所以我将数据编码为7位格式。这会造成开销。我需要二进制数据传输能力。所以我修改了编码和帧(现在操作码是130,用于二进制消息,而不是129)我可以说服务器部分还可以。我观察了输出帧,它遵循协议。我在客户端遇到了问题。

每当客户端接收到传入消息时,如果所有字节都在限制范围内(0到127),它将调用onMessage(),我可以成功解码传入消息。然而,即使是一个单一的字符介绍,这是

附言:我用的是Chrome 22.0和Firefox 17.0

共有2个答案

吕华彩
2023-03-14

您是如何观察传出帧的?您观察到的头字节是多少?听起来您可能实际上没有成功设置二进制操作码,这会在浏览器中触发UTF-8验证,但验证失败。

戚阳曜
2023-03-14

看起来您的问题与如何组装框架有关?由于您有一个已建立的连接,当onmessage事件即将触发时,该连接将终止,我想知道它是否与帧相关?

如果你学习网络呢-

它可能超出了你的范围?,但我是XSocket的开发人员之一。NET(C#)框架,我们那里有二进制支持,如果你有兴趣,我最近正好发布了一个例子,它可以在https://github.com/MagnusThor/XSockets.Binary.Controller.Example

 类似资料:
  • 在spring文档之后,我能够通过WebSockets通过STOMP发送和接收JSON。然而,在高速率下性能很差,因此我希望分析二进制消息的使用。 Spring腹板套筒4.0 我使用带有必要代理中继的SimpMessageTemplate发送消息-请参阅Spring留档 JavaScript客户端使用stomp接收数据。js使用标准机制。 消息以字符串形式接收,控制台输出如下。我在期待一些原始类型

  • 问题内容: 我正在尝试将HTTP POST发送到网络上的设备。不幸的是,我想将四个特定字节的数据发送到设备,但我似乎只能将字符串发送到设备。反正有使用JavaScript发送原始二进制文件吗? 这是我用来执行POST的脚本,除非我在数据字段中输入字符串,否则它目前不会运行。有任何想法吗? 问题答案: 默认情况下,jQuery序列化数据(传递的属性)-这意味着将 数字 作为“ 4244668417”

  • ap.sendSocketMessage(OPTION, CALLBACK) 通过 WebSocket 连接发送数据,需要先 ap.connectSocket,并在 ap.onSocketOpen 回调之后才能发送。 OPTION 参数说明 名称 类型 必选 描述 data String/ArrayBuffer 否 请求的参数 代码示例 <script src="https://gw.alipay

  • 我必须对FTP服务器进行编码,而且我在数据传输方面遇到了问题。 我在linux上使用ftp命令来测试它,我目前正在使用,它发送工作目录中的文件/目录列表。一切正常(ftp打印文件列表),除了ftp打印以下警告: 我想删除该警告,我认为ftp需要二进制数据,但我不知道如何通过套接字发送这样的数据,我目前正在使用最基本的方式发送结果:

  • 问题内容: 大家好,我正尝试通过websockets发送javascript对象: faye-websockets文档说: send(message) 接受字符串或缓冲区,并通过连接向另一对等方发送文本或二进制消息。 服务器端我正在使用node和faye。 客户端: 我的错误是什么?谢谢 问题答案: WebSockets支持发送和接收:字符串,类型数组(ArrayBuffer)和Blob。发送之前

  • 问题内容: 我已经看到了许多在Java中通过套接字发送序列化数据的示例,但是我想要的只是发送一些简单的整数和字符串。而且,问题是我正在尝试将这些信息传递给用C编写的二进制文件。 因此,最重要的是:如何在Java中通过套接字发送一些字节? 问题答案: 我真的建议不要直接使用Java Sockets库。我发现Netty(来自JBoss)非常易于实现且功能强大。Netty ChannelBuffer类带