是否可以通过 126 个字符发送 websocket 数据?

Posted

技术标签:

【中文标题】是否可以通过 126 个字符发送 websocket 数据?【英文标题】:Is it possible to send websocket data over 126 chars? 【发布时间】:2011-11-27 09:47:44 【问题描述】:

似乎每个人都说可以通过 websocket 发送超过 126 个字符的数据。

我查看了网络上的许多 websocket 服务器示例,但没有一个可以从客户端到服务器以及从服务器到客户端传输超过 126 个字符。 我知道这是与数据帧和操作码有关的东西,但我从来没有弄清楚。我正在使用 C#。

有人能说明一下这个问题吗?任何接收和发送超过 126 个字符的数据的代码示例都非常感谢

【问题讨论】:

你是说这个? ***.com/questions/8193761/… 我在***.com/questions/8125507/…发布了一些任意长度的伪代码。 嘿 pimvdb,我试过你的例子,实际上这是唯一对我有用的例子,但它仍然只解析消息的第 126 个字符。例如,我在客户端使用 -> websocket.send('hello world');如果消息长度超过 126 个字符,则示例剪切消息并仅将前 126 个字符传递给服务器 您获取的原始数据的长度是多少?您确定您确实收到了所有数据吗? 我的数据长度是 180 个字符,我的缓冲区最多可以接受 512 个字节 【参考方案1】:

是的,这是可能的。根据Hybi-10 header docs(与当前提案草案不变):

如果第一个有效负载长度部分的有效负载长度等于 126,您将从扩展有效负载长度(以下两个字节)中读取长度。如果是 127,你会一直读到接下来的四个字节,以获得有效载荷的全长(即最后六个字节)。

我们在Alchemy Websockets 做;你可以在这里看到我们是如何做到的:https://github.com/Olivine-Labs/Alchemy-Websockets/blob/8ce624b10d82fef6d01b806052d783072b143ba4/src/Alchemy/Handlers/WebSocket/hybi10/FrameHeader.cs

【讨论】:

我认为对于 127,它将是接下来的 6 个字节,总共 8 个字节。

以上是关于是否可以通过 126 个字符发送 websocket 数据?的主要内容,如果未能解决你的问题,请参考以下文章

websock第一次连不上window

WebSocket 无法发送大数据

发送大于 126 字节的 websockets 消息

Python3实现126邮箱163邮箱SMTP发送邮件

126邮箱发送邮件python实现

selenium+Python unittest之发送邮箱时报错:smtplib.SMTPDataErrorsmtplib.SMTPAuthenticationError(例:126邮箱)(示(代码