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

    客户端功能

    自定义二进制协议的连接

    1. var units = [
    2. unit("起始符", "STRING", 2, [0x23, 0x23]),
    3. unit("命令单元", "BYTE", 1),
    4. unit("回复单元", "BYTE", 1),
    5. unit("车辆识别码", "STRING", 17),
    6. unit("数据加密方式", "BYTE", 1),
    7. unit("数据单元长度", "WORD", 2),
    8. unit("数据单元", "BYTE[]", mylength),
    9. unit("校验码", "BYTE", 1)
    10. ];
    11. function mylength(bytes) {
    12. var b=bytes.substr(bytes.length-2,2);
    13. return bytes.obj(b,"WORD");
    14. }
    15. var contentunits = [
    16. unit("平台登入时间", "DATE2", 6),
    17. unit("登入流水号", "WORD", 2),
    18. unit("平台用户名", "STRING", 12),
    19. unit("平台密码", "STRING", 20),
    20. unit("加密规则", "BYTE", 1),
    21. ]
    22. function received(bytes) {
    23. //下面解析从服务器返回的数据
    24. //console.log(bytes);
    25. var data = bytes.parse(bytes, units);
    26. console.log(data);
    27. //data[6] = bytes.parse(data[6], contentunits);
    28. }
    29. var address = "mytcp://117.73.254.2:10828";
    30. //如果不存在连接,就产生一个连接到服务器
    31. if (!client.exist(address)) {
    32. //产生新的连接(连接地址,解析单元定义,收到数据后执行函数)
    33. client.new(address, units, received);
    34. }
    35. //发送的内容
    36. var content = units.bytes(
    37. contentunits, [now(), 1, "abcde", "123456", 0x01]
    38. );
    39. var data = [[0x23, 0x23], 0x07, 0xFE, "111111111111", 0x01, content.length, content, crc(content, 0, content.length)];
    40. var bytes = units.bytes(units, data);
    41. console.log(bytes.hex(bytes));
    42. //下面发送指令到服务器上
    43. client.send(address, bytes);
    44. return 1;

    模拟http协议连接

    1. function received(bytes) {
    2. //下面解析从服务器返回的数据
    3. //console.log(bytes);
    4. //var data = bytes.parse(bytes, units);
    5. console.log("收到消息:" +utf8.string(bytes));
    6. //data[6] = bytes.parse(data[6], contentunits);
    7. }
    8. var address = "tcp://127.0.0.1:511/11";
    9. //如果不存在连接,就产生一个连接到服务器
    10. if (!client.exist(address)) {
    11. //产生新的连接(连接地址,解析单元定义,收到数据后执行函数)
    12. var units=[
    13. unit("头定义", "STRING", 0, utf8.bytes("\r\n\r\n")),
    14. unit("消息体", "STRING", mylength)
    15. ]
    16. function mylength(bytes) {
    17. var header = utf8.string(bytes);
    18. var items = header.split("\r\n");
    19. for (var item in items) {
    20. var mao = item.indexOf(":");
    21. if (mao != -1) {
    22. var name = item.substr(0, mao);
    23. var value = item.substr(mao + 1);
    24. if (name == "Content-Length") {
    25. return int(value);
    26. }
    27. }
    28. }
    29. return 0;
    30. }
    31. client.new(address, units, received);
    32. }
    33. //发送的内容
    34. var bytes1=utf8.bytes(
    35. "POST /admin/setting.json HTTP/1.1\r\nHost: localhost\r\nContent-Type: application/x-www-form-urlencoded\r\nConnection: Keep-Alive\r\nUser-agent: Mozilla/5.0\r\n\r\n"
    36. );
    37. //下面发送指令到服务器上
    38. client.send(address, bytes1);