Websocket:目的文本/二进制框架指示器是什么

时间:2017-04-07 17:23:39

标签: websocket

我在C中实现了一个WebSocket服务器,并且想知道文本/二进制框架指示符(操作码1和2)的用途是什么。他们为什么在那里?最后,在两种情况下,有效载荷都包含位。当有一个使用websocket的协议时,我知道数据的期望。是因为当它是文本消息时,我可以确定有效载荷只包含UTF-8有效数据吗?

1 个答案:

答案 0 :(得分:2)

我将通过指出WebSockets经常在考虑Javascript客户端(即浏览器)的情况下开始我的回答。

当您使用C时,可能会以不同的方式使用不同的操作码,但在​​使用Javascript时,此差异会控制事件中数据的类型(Blob与{{3} })。

正如您在问题中指出的那样,字符串始终是有效的UTF-8字节流,而blob则不是。

这会影响一些数据传输方案(例如JSON解析,它需要UTF-8有效流)。

显然,在C中,这个操作码可以以不同的方式使用,但最好以与潜在的javascript客户端相同的方式使用操作码。

P.S。

有很多Websocket C库和框架(我是String的作者)。

除非这是一个研究项目,否则我会考虑使用其中一个已建立的框架/库。