使用java和qt开发远程控制系统-http接口

根据以上设计原理,暂时不考虑安全,用户认证等问题,服务器端需要提供的http接口有:

1:用户登录接口

       参数:deviecode,设备识别码,读取CPU或者硬盘序列号

       返回:当前用户识别码和验证码

2:用户刷新验证码

       参数:识别码,验证码

       返回:新的验证码

3:心跳接口

       参数:识别码,验证码

       返回:如果有链接请求,返回链接的ip与端口

4:链接请求,接收链接请求,创建链接记录

       参数:被控制端识别码,验证码

       返回:如果成功,返回链接的ip与端口

表设计用户表:

表设计会话表:

http服务器端开发,使用eclipse,maven,springboot,mybatis,这些东西就比较过了,过程不表,贴上核心代码。

@RestController

@RequestMapping("/yk/")

public class IndexController extends BaseController {

    @Autowired

    UserService us;

    @Autowired

    SessionService ss;

   

    Random rdm=new Random();

   

   

    @RequestMapping("index")

    public Object index() {

       us.getMaxId();

       return success("v1.0.0");

    }

    /**

     * 设备码登录

     * @param code

     * @return

     */

    @RequestMapping("login/{code}")

    public Object login(@PathVariable String code) {

      

       User u=us.getUserByDeviceCode(code);

       if(u==null) {       

           int maxid=us.getMaxId()+1;

           User u1=new User();

           u1.setCode(rdm.nextInt(9999)+""+(1000+maxid));

           u1.setCheckCode(rdm.nextInt(9999)+"");

           u1.setDeviceCode(code);

           us.insert(u1);

           return success(u1);

       }

       return success(u);

    }

    /**

     * 刷新验证码

     * @param code

     * @param pwd

     * @return

     */

    @RequestMapping("refresh/{code}/{pwd}")

    public Object refrshCode(@PathVariable String code,@PathVariable String pwd) {

       User u=new User();

       u.setCheckCode(pwd);

       u.setCode(code);

       u=us.selectOne(u);

       if(u!=null) {

           u.setCheckCode(rdm.nextInt(9999)+"");

           u.setLastOnLine(new Date());

           us.onLine(u);

           return success(u);

       }

       else return error("异常设备");

    }

    /***

     * 设备心跳接口

     * @param code

     * @param pwd

     * @return

     */

    @RequestMapping("alive/{code}/{pwd}")

    public Object alive(@PathVariable String code,@PathVariable String pwd) {

       User u=new User();

       u.setCheckCode(pwd);

       u.setCode(code);

       u=us.selectOne(u);

       if(u!=null) {

           u.setLastOnLine(new Date());

           us.onLine(u);//更新

          

           MySession session=ss.getByDeviceCode(u.getCode());//查看有没有链接请求

           if(session!=null) {

              //入股有链接请求

              return success(session);//链接请求返回

           }

          

           return success(u);//返回

       }

       else {

           return error("异常设备");

       }

    }

   

    /**

     * 请求链接

     * @param code

     * @param pwd

     * @param mycode

     * @return

     */

    @RequestMapping("control/{code}/{pwd}")

    public Object control(@PathVariable String code,@PathVariable String pwd,String mycode) {

      

       User u=new User();

       u.setCheckCode(pwd);

       u.setCode(code);

       u=us.selectOne(u);

       if(u!=null) {

           Long online=(long) 0;

           if(u.getLastOnLine()!=null)online=u.getLastOnLine().getTime();//设备在线时间,毫秒

           Long now=new Date().getTime();//当前时间毫秒

           if((now-online)/1000>10) {

              //10秒没有在线

              return error(code+"没有在线");

           }

           MySession session=new MySession();

           session.setControlCode(mycode);//控制端

           session.setControledCode(code);//被控制端

           session.setIp("127.0.0.1");//可以ip或者域名

           session.setPort(3456);//链接端口

           session.setStatus(0);//当前是0

           ss.insert(session);//存储         

   

           return success(session);//链接请求返回        

       }

       else {

           return error("识别码或者验证错误");

       }

    }

   

   

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值