Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Websocket:文本/二进制帧指示符的用途是什么_Websocket - Fatal编程技术网

Websocket:文本/二进制帧指示符的用途是什么

Websocket:文本/二进制帧指示符的用途是什么,websocket,Websocket,我正在用C实现一个WebSocket服务器,我想知道文本/二进制帧指示符(操作码1和2)的用途是什么。他们为什么在那里?最后,在这两种情况下,有效载荷都包含位。当存在使用websocket的协议时,我知道数据中会出现什么。这是因为当它是一条文本消息时,我可以确定有效负载只包含UTF-8有效数据吗?我将首先指出WebSocket通常是通过Javascript客户端(即浏览器)实现的 在使用C时,不同的操作码可能以不同的方式使用,但在使用Javascript时,这种差异控制事件中数据的类型(vs.)

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

我将首先指出WebSocket通常是通过Javascript客户端(即浏览器)实现的

在使用C时,不同的操作码可能以不同的方式使用,但在使用Javascript时,这种差异控制事件中数据的类型(vs.)

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

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

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

附言

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


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

< P>我将开始回答,指出WebSooCK通常是用JavaScript客户端(即浏览器)实现的。 在使用C时,不同的操作码可能以不同的方式使用,但在使用Javascript时,这种差异控制事件中数据的类型(vs.)

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

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

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

附言

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

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