使用socket.io
库,我可以使用服务器端的socket.emit
方法将哪些对象传输到客户端?例如,socket.io
网站提供了类似以下内容的示例
socket.emit('news', { hello: 'world' });
但是,在使用emit
方法时,我无法找到有关以下问题的任何文档:
emit
传输“任何”JavaScript对象,比如一个方法,复杂属性等吗?socket.io
在实际转移到客户端时是否使用JSON转换。答案 0 :(得分:3)
支持所有数据结构,包括Buffer。 JavaScript函数无法序列化/反序列化。
这意味着你可以发出很多,包括JavaScript对象文字。您可以发出的唯一内容是函数,因为它们不可序列化,因此您将无法发出包含方法的对象,并且接收方可以使用这些方法。但是,允许使用嵌套属性。
您不必使用emit
提前转换数据,但您需要使用send
。按理说socket.io
在将数据传输到客户端时会进行一些转换。