如何在sockjs连接中传递对象?

时间:2014-06-24 09:28:36

标签: object sockjs

我想在客户端和服务器之间发送对象。但是,当我尝试传递一个对象时,我发现我无法使用它(值未定义)。

为了解决这个问题,我只是将对象作为字符串传递给连接 使用

json.stringify at source

json.parse at destination
到目前为止,这是有效的,但我担心这是一个不优雅的解决方案,当我开始使用复杂的对象(图形对象等)时,我将最终处于一个不好的地方。

sockjs中是否存在使用对象的原生方式?

感谢。

1 个答案:

答案 0 :(得分:1)

使用网络,一切都以二进制形式0/1传输。无论是什么数据(图像,json,字符串,音频,视频等)。

从一种形式转换为另一种形式的过程称为序列化/反序列化。 WebSockets默认支持二进制和基于文本的消息。文本是utf-8,因此将字符表示中的图像作为文本发送将是过度的,甚至base64也不是最好的方法,因为它需要多次转换。

对于二进制类型的数据(图像,音频,视频),它应该以二进制(Blob)形式发送,字符串应该以文本形式发送。

JSON - 基于文本的人类可读格式,解析器今天非常快,所以它是#34;好的"字符串化并解析它以发送。如果性能atm存在实际问题,那么你需要在这里解决你的逻辑和数据协议,考虑使用protobuff或bson以更有效的方式发送数据。

但是你不应该在发展的早期阶段担心这一点 处理真正的问题会更好。