Meteor DDP服务器到客户端规范:开头的奇怪字符

yep*_*ons 3 communication meteor ddp

我现在正在发现Meteor DDP协议,没有太多关于它的文档.

我发现的是Meteor服务器在每个消息块前面发送一个字符(这些消息像字符串一样发送,为什么?你知道吗?),如下所示:

c[2010,"Another connection still open"]
o
a["{\"server_id\":\"0\"}","{\"msg\":\"connected\",\"session\":\"BFWEff4389fjHFure\"}"]
a["{\"msg\":\"ready\",\"subs\":[\"fefjuihYFrvnuKOEF\"]}"]
Run Code Online (Sandbox Code Playgroud)

(钥匙被更换了)

预先添加这个角色的目的是什么?我在哪里可以阅读更多有关它和低级别DDP规范的内容?我保证(至少对于pre1版本)所有消息都以字符串编码,并且这些字符串连接成数组,并且每个这样的数组都以自定义字符为前缀?

Aks*_*hat 5

我认为这些角色不是由流星添加的,而是由sockjs放入的,Meteor模块用于构建DDP的websockets.

  • c 代表封闭(关闭框架)
  • o 插座打开时(打开框架)
  • a 收到数据时(编码的JSON消息数组)/数据类型
  • h 听觉,每分钟发送一次作为活着.

DDP不需要这些.如果你发送它们就会被忽略.

您可以在node-ddp-client之类的项目中查看更多没有sockjs的低级操作,这些项​​目使用faye-websockets,因此它更加原始.数据也可以在原始字符串化的json中发送.

参考: