Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.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_Comet - Fatal编程技术网

Websocket 如何在浏览器和服务器之间传输数据结构

Websocket 如何在浏览器和服务器之间传输数据结构,websocket,comet,Websocket,Comet,在交互式web应用程序的环境中,尤其是那些使用WebSocket等技术的库中,我们如何在客户端浏览器和服务器之间传输数据结构(如地图、列表、集合等)?到目前为止,我遇到的示例只传递字符串 这种支持是根据所使用的库的具体情况而定,还是有更通用的机制可用?通常的方式是JSON或类似的方式。您可以通过websocket发送三种内容(从客户端角度): 弦 阵列缓冲器 斑点 如果您有一个复合Javascript数据结构(映射和数组的层次结构),那么应该使用JSON将它们序列化为字符串,并通过WebSo

在交互式web应用程序的环境中,尤其是那些使用WebSocket等技术的库中,我们如何在客户端浏览器和服务器之间传输数据结构(如地图、列表、集合等)?到目前为止,我遇到的示例只传递字符串


这种支持是根据所使用的库的具体情况而定,还是有更通用的机制可用?

通常的方式是JSON或类似的方式。

您可以通过websocket发送三种内容(从客户端角度):

  • 阵列缓冲器
  • 斑点
如果您有一个复合Javascript数据结构(映射和数组的层次结构),那么应该使用JSON将它们序列化为字符串,并通过WebSocket连接将它们作为字符串发送

如果您对通过WebSocket连接发送二进制字节或文件数据感兴趣,您仍然可以序列化为字符串(低效率的带宽),或者可以将数据作为ArrayBuffers或Blob发送

注1:当发送ArrayBuffer或Blob时,会在服务器需要支持二进制帧的连线上产生二进制WebSocket帧

注2:当服务器发送二进制帧时,客户机可以选择返回什么类型的对象。这是WebSocket对象的binaryType属性,可以设置为“arraybuffer”或“blob”


注3:如果您的浏览器只支持较旧的WebSocket Hixie协议系列(如iOS Safari),则没有二进制数据,您只能发送和接收字符串。

在等待回答时,我读到了以下内容:,这似乎表明JSON可能是解决方案。