在交互式Web应用程序的环境中,特别是那些利用Websockets等技术的库,我们如何在客户端浏览器和客户端之间传输数据结构(例如地图,列表,集合等)服务器?我迄今为止遇到的例子只能传递字符串。如何在浏览器和服务器之间传输数据结构
这种支持情况取决于所使用的库,还是提供了更一般的机制?
在交互式Web应用程序的环境中,特别是那些利用Websockets等技术的库,我们如何在客户端浏览器和客户端之间传输数据结构(例如地图,列表,集合等)服务器?我迄今为止遇到的例子只能传递字符串。如何在浏览器和服务器之间传输数据结构
这种支持情况取决于所使用的库,还是提供了更一般的机制?
您可以通过WebSocket的送三件事情(从客户角度):
如果你有一个复合的Javascript数据结构(层次的地图和数组),那么你应该使用JSON来将它们序列化为字符串并通过WebSocket连接以字符串形式发送它们。
如果您有兴趣通过WebSocket连接发送二进制字节或文件数据,您仍然可以序列化为字符串(低效的带宽方式),或者可以将数据作为ArrayBuffers或Blob发送。
注意1:当发送ArrayBuffer或Blob导致服务器需要支持二进制帧的二进制WebSocket帧时。
注2:当服务器发送二进制帧时,客户端可以选择返回什么类型的对象。这是WebSocket对象上的binaryType属性,可以设置为“arraybuffer”或“blob”。注3:如果您的浏览器仅支持较早的WebSocket Hixie协议系列(例如iOS Safari),则不存在二进制数据,您只能发送和接收字符串。
通常的方式是JSON或类似的。
在等待答案时,我阅读了这个:http://stackoverflow.com/questions/383692/what-is-json-and-why-would-i-use-it,这似乎表明JSON可能是解决方案。 – skyork
感谢Websockets特有的额外细节。 – skyork