Skip to content

CMDP协议

CMDP(Command Prompt Protocol)协议iswork框架的专有协议,灵感来自HTTP协议。CMDP协议主要解决iswork框架与外部数据传输时的统一规范性,目前作用在iswork(web worker)与ui界面(主线程)的数据交互上,未来可在点对点网络传输上发挥重用作用。

CMDP地址

CMDP地址结构分为以下部分:

  • 协议:协议固定为cmdp
  • 用户账号:当前用户的账号。限制:1-20个字符,字符类型包括字母和下划线。
  • 应用域路径:指定访问具体哪个应用,有嵌套应用域的应用需要用.分开。限制:路径名1-20个字符,字符类型包括字母和下划线,路径最少1层,最多5层。
  • 端口号:由于一台电脑可以运行多个命令窗口,端口可以用来指定具体哪个命令窗口。限制:数字,0<=端口<=9999
  • 方法路径名:应用下的方法路径名,在iswork里一般指控制器类的名称。限制:路径名1-20个字符,字符类型包括字母和下划线。
  • 处理方法名:处理该消息的方法名,在iswork里一般指控制器类的方法名称。限制:路径名1-20个字符,字符类型包括字母和下划线。

协议地址结构:

text
[协议]://@[用户账号].[应用域路径]:[端口号]/[方法路径名].[处理方法名]

正则表达式校验:

text
/^cmdp:\/\/@\\w{1,20}(\\.[\\w]{1,20}){1,5}:[0-9]{1,4}\/[\\w]{1,20}\.[\\w]{1,20}$/

示例:

text
cmdp://@guest.global:1/cmdRoute.list

消息结构

请求

  • meta:请求的描述信息,类似HTTP的header头,一般与业务数据无关的数据都应该放在meta里。
  • payload:请求的业务数据,类似HTTP的body,需要传递的业务数据放在body里。

响应

  • meta: 请求的描述信息,类似HTTP的header头,一般与业务数据无关的数据都应该放在meta里。
  • payload:响应的业务数据,类似HTTP的body,需要传递的业务数据放在body里。

协议实现

请参考@istock/iswork库里面的cmdp实现,具体源码路径在iswork/src/cmdp

最后更新于:

免责声明:本站所有信息、数据、软件仅供学习研究,都不构成投资建议,本站不承担由此导致的任何责任。