软件应用
按照特定顺序组织的计算机数据和指令的集合

[跨平台] 后台定时推送

源码

https://github.com/iwonmo/PushScript

运行方法

参考:https://www.iwonmo.com/archives/1575.html

【如和本页内容存在冲突以本页为准】

数据格式

{"key":"11981af0-980e-476d-956d-3c85937073fe","data":"NB13d5pRHE0JGA1","time":1563636668748,"utime":120000,"type":"uptime"}

key:存储标识

data:存储数据

time:过期时间

utime:更新时间 推送消息后,下次推送时间 = 当前时间 + 更新时间

type:消息类型

none:过期推送删除 

uptime:推送后更新推送时间持续推送

del:删除对应Key

注:格式为JSON,时间为毫秒。 

添加数据

        String _string = "abcd";
        try {
            JsonObject jsonObject = (JsonObject) new JsonObject();
            jsonObject.addProperty("key", UUID.randomUUID().toString());
            jsonObject.addProperty("data", generateString(new Random(), SOURCES, 15));
            jsonObject.addProperty("time", System.currentTimeMillis() + 10000);
            jsonObject.addProperty("utime", 120000);
            jsonObject.addProperty("type", "uptime");
            _string = (jsonObject.toString());
        } catch (Exception e) {
        }
        //创建Socket对象 并写入IP地址及端口号
        Socket socket = new Socket("127.0.0.1", 1992);
        OutputStream ops = socket.getOutputStream();
        OutputStreamWriter opsw = new OutputStreamWriter(ops);
        BufferedWriter bw = new BufferedWriter(opsw);
        bw.write(_string);
        bw.flush();
        bw.close();
        opsw.close();
        ops.close();
        socket.close();

解释

dataDir

数据库存储目录,每次程序运行会自动读取最新的一个库,每隔相应时间会自动保存一份。以防程序崩溃造成数据损失。

http文件

接口回调地址填写文件,将回调地址填写到里面,程序会自动读取。

回调参数

程序到设定日期后会将key、data和type推送给回调地址。获取方式HTTP GET方式获取。

端口

【1992】将JSON数据提交到此端口即可

【1993】程序内部逻辑使用端口不用理会

会测接口测试工具(H.Test)

    微信截图_20190221102029.png

帮助文档

视频说明  文档说明  运行库(2017)  文件安全  码云历史

如系统为精简版或无法运行提示Dll问题,可打开运行库,选择Visual Studio 2017安装。

    函数说明

    Base64函数:_G64(all) | _U64(all)

        参数:

            all:所有可输入字符

        注:_Gxx:GB2312编码、_Uxx:UTF-8编码

    递增函数:_Var(num)

        参数:

            num:初始值。会在此值的基础上累加

    数组函数:_ArrFun(star,end | num)

        参数:

            star:字典开始位置【1】

            end:字典结束位置

        参数:

            num:直接索引

        字典格式:

            1,2,3,4,5  [字典为根目录下的ArrFun.txt]

    随机函数:_RandFun(num,len)

        参数:

            num:1:数字  2:字母  3:数字+字母

            len:返回文本长度

    随机整数函数:_NumFun(star,end)

        参数:

            star:开始数

            end:结束数

    函数使用

    新建php代码:

    <?php
        $ret=' | _Var:'.$_POST['Var'].
        ' | _ArrFun:'.$_POST['ArrFun'].
        ' | _RandFun:'.$_POST['RandFun'];
        exit($ret);

    POST数据格式:

    Var=_Var(1)&ArrFun=_ArrFun(1,3)&RandFun=_RandFun(3,10)

    返回结果:

    22:00:47[277]    | _Var:17 | _ArrFun:广州 | _RandFun:0joaoO46L7

    22:00:47[277]    | _Var:21 | _ArrFun:深圳 | _RandFun:tQVv3B8p5s

    ...

    22:00:47[277]    | _Var:9 | _ArrFun:上海 | _RandFun:7aqX44Cco5

    22:00:47[277]    | _Var:23 | _ArrFun:上海 | _RandFun:9aEQArrFPc

    更新日志


    SplitField

    将建表语句复制到剪贴板,然后打开SplitField就可以显示所有的字段,然后选择性的勾选就好了。建表语句可以直接从Navicat查看与复制。主要用于联查或子查询等一些需要选择字段的情况


    技术栈:Jdk1.8+Gradle   支持:win+osx




    2019.1.1  SplitField.zip

    增加对enum类型的分析

    修复剪贴板为空自动退出问题



    兼容版本:SplitField.jar.zip

    Win右键版本:SplitField.zip