• 平台功能
  • 功能介绍
    • 配置文件
    • 系统函数
    • 组态图形
    • 页面集成
    • 功能扩展
    • SSL TLS
  • 本地部署
    • 数据库备份与还原
  • 协议处理
    • WebSocket
    • 国标协议
    • JT808协议
    • MQTT协议
    • OPC网关
    • 自定义协议(my)
    • 自定义协议(di)
    • 平台主动发给终端
    • 串口功能
    • 客户端功能
  • 完整案例演示
  • 系统函数源代码
  • 简洁的Ajax代码
  • 服务配置
  • setting.json
  • 处理消息与返回
    文档主题
    https://twuyun.com/help/doc/0/index?id=6000e09aa5a79a47a08554c3
    功能
    模板管理图形管理脚本测试文档管理系统日志
    0

    自定义协议(di)

    di前缀的定义解析,跟自定义几乎一致,只是更加通用

    服务配置

    配置端口监听终端连接与消息,配置完成后需要重启服务

    1. <add key="Role" value="di;9991;777;test;0;tcp"/>
    2. 如:di;9991;777;test
    3. di;端口号;最大连接数;服务名称;超时秒;tcp/udp
    4. 定义好后,服务名为:di_test
    5. 在进行协议定义时注意文件夹名称为:di_test
    6. 超时秒默认为300秒也就是5分钟

    setting.json

    定义接收协议的处理程序

    1. {
    2. "MyProcess": {
    3. "main": "/./main.ds",//定义协议构成
    4. "process": "/./process.ds",//定义解析后的数据处理
    5. "close": "/./offline.ds" //定义连接断开后的处理
    6. }
    7. }

    处理消息与返回

    消息可以通过input()获取到,也可以直接访问变量

    1. //input内容示例:{"server":"di_card","domain":"www.twuyun.com","session":{"id":"7b2c0398-872c-4f1f-b9ca-42b5a5969e41","ip":"39.144.14.21","tag":{}},"data":{"bytes":"0x78781101086812031526495980533201000181270D0A","time":"2024-02-08T06:41:00.635Z","ip":"39.144.14.21"},"client":null}
    2. received=input();
    3. a =data.bytes;//或者
    4. a =received.data.bytes
    5. //都可以获取到终端发送的二进制内容,其他信息依此类推

    消息处理后可以通过返回实现功能

    1. clientid:标识客户端,后面每次通讯会自动带入标识
    2. userid:标识用户,后面每次通讯会自动带入标识
    3. bytes:回发消息,通过该通道回复给终端的二进制消息
    4. tag:自定义变量,可以记录这个连接的一些特征
    1. result = {
    2. "clientid": clientid, //客户端的标识
    3. "userid": id(), //用户的标识
    4. "tag": tag, //自定义变量,可以记录这个连接的一些特征
    5. "bytes": bin("010203")//回发消息,通过该通道回复给终端的二进制消息
    6. };
    7. return result;