无法通过WebSockets发送二进制数据
Unable to send binary data over WebSockets
我正在开发一个查看器应用程序,服务器在其中捕获图像,执行一些图像处理操作,这需要在客户端的HTML5画布上显示。我编写的服务器是用VC++编写的,使用http://www.codeproject.com/Articles/371188/A-Cplusplus-Websocket-server-for-realtime-interact.
到目前为止,我已经实现了所需的功能。现在我所需要做的就是优化。Reference是一个用来发送字符串的聊天应用程序,所以我将数据编码为7位格式。这会造成开销。我需要二进制数据传输能力。所以我修改了编码和成帧(现在二进制消息的操作码是130,而不是129。)我可以说服务器部分是可以的。我观察到了传出的帧,它遵循协议。我在客户方面遇到了问题。
每当客户端接收到传入消息时,如果所有字节都在限制(0到127)内,它就会调用onMessage(),我就可以成功地解码传入消息。然而,即使只引入一个>127的字符,也会导致客户端调用onClose()。连接被关闭,我找不到原因。请帮帮我。
附言:我正在使用chrome 22.0和Firefox 17.0
看起来您的问题与如何组装框架有关?当onmessage事件即将启动时,您已经建立了一个终止的连接,我认为它与帧有关?
如果你在谷歌浏览器上研究网络->WebSocket->连接框架,会怎么样?上面写着什么?
它可能超出了你的范围?,但我是XSockets.NET(C#)框架的开发人员之一,我们在那里有二进制支持,如果你感兴趣的话,我最近刚刚发布了一个例子,可以在https://github.com/MagnusThor/XSockets.Binary.Controller.Example
您是如何观察传出帧的?您观察到的标头字节是多少?听起来您实际上可能没有成功设置二进制操作码,这会触发浏览器中的UTF-8验证,但会失败。
- 如何从dicom文件中读取二进制数据
- 如何在Qt中从数据库中检索二进制数据?
- readsome() 适合在 Windows 上读取二进制数据吗?
- 如何使用 redis-plus-plus 存储二进制数据,就像我想存储结构一样?@for_stack?
- 将包含二进制数据的 QByteArray 传递到按值运行
- 如何在 c++ 中生成十六进制二进制数据的 sha256 哈希?
- 在处理网络、二进制数据和序列化时应使用流或容器
- 我能确定从文件中读取的 32 字节二进制数据等于 256 位吗?
- C++:如何通过 curl 调用使用 HTTP post 请求发送二进制数据(protobuf 数据)
- 使用二进制数据更新 PostgreSQL 表
- 使用二进制数据和无符号字符
- sd_journal_send发送二进制数据.如何使用日志检索数据?
- 从带有 std::ifstream::read() 的文件中读取 int 遍历 char * 二进制数据
- 将文本和二进制数据连接到一个文件中
- 二进制模式 + 格式化文本操作或文本模式 + 二进制数据操作 - 有意义吗?
- 将整数的二进制数据转换为浮点数
- 使用 CMake 在可执行文件中嵌入二进制数据
- 二进制数据作为命令行参数
- 如何访问文件的二进制数据?
- 返回二进制数据的通用方式,而无需原始指针