di前缀的定义解析,跟自定义几乎一致,只是更加通用
配置端口监听终端连接与消息,配置完成后需要重启服务
<add key="Role" value="di;9991;777;test;0;tcp"/>
如:di;9991;777;test
di;端口号;最大连接数;服务名称;超时秒;tcp/udp
定义好后,服务名为:di_test
在进行协议定义时注意文件夹名称为:di_test
超时秒默认为300秒也就是5分钟
定义接收协议的处理程序
{
"MyProcess": {
"main": "/./main.ds",//定义协议构成
"process": "/./process.ds",//定义解析后的数据处理
"close": "/./offline.ds" //定义连接断开后的处理
}
}
消息可以通过input()获取到,也可以直接访问变量
//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}
received=input();
a =data.bytes;//或者
a =received.data.bytes
//都可以获取到终端发送的二进制内容,其他信息依此类推
消息处理后可以通过返回实现功能
result = {
"clientid": clientid, //客户端的标识
"userid": id(), //用户的标识
"tag": tag, //自定义变量,可以记录这个连接的一些特征
"bytes": bin("010203")//回发消息,通过该通道回复给终端的二进制消息
};
return result;