根据以上设计原理,暂时不考虑安全,用户认证等问题,服务器端需要提供的http接口有:
用户登录接口
参数:deviecode,设备识别码,读取CPU或者硬盘序列号
返回:当前用户识别码和验证码
用户刷新验证码
参数:识别码,验证码
返回:新的验证码
心跳接口
参数:识别码,验证码
返回:如果有链接请求,返回链接的ip与端口
链接请求,接收链接请求,创建链接记录
参数:被控制端识别码,验证码
返回:如果成功,返回链接的ip与端口
表设计用户表:
表设计会话表:
http服务器端开发,使用eclipse,maven,springboot,mybatis,这些东西就比较过了,过程不表,贴上核心代码。
@RequestMapping('/yk/')
@RequestMapping('index')
us.getMaxId();
returnsuccess('v0.0');
}
/**
*设备码登录
*@return
*/
@RequestMapping('login/{code}')
if(u==nul{
intmaxid=us.getMaxId()+1;
Useru1=newUser();
usetCode(rdnextInt(999+''+(1000+max;
usetCheckCode(rdnextInt(999+'');
us.insert(u;
}
}
/**
*刷新验证码
*@parampwd
*@return
*/
@RequestMapping('refresh/{code}/{pwd}')
Useru=newUser();
u=us.selectOne(u);
if(u!=nul{
u.setCheckCode(rdnextInt(999+'');
us.onLine(u);
}
elsereturnerror('异常设备');
}
/***
*设备心跳接口
*@parampwd
*@return
*/
@RequestMapping('alive/{code}/{pwd}')
Useru=newUser();
u=us.selectOne(u);
if(u!=nul{
us.onLine(u);//更新
MySessionsession=ss.getByDeviceCode(u.getCode());//查看有没有链接请求
if(session!=nul{
//入股有链接请求
returnsuccess(sessio;//链接请求返回
}
returnsuccess(u);//返回
}
else{
returnerror('异常设备');
}
}
/**
*请求链接
*@parampwd
*@return
*/
@RequestMapping('control/{code}/{pwd}')
publicObjectcontrol(@PathVariableStringcode,@PathVariableStringpwd,Stringmycod{
Useru=newUser();
u=us.selectOne(u);
if(u!=nul{
Longonline=(lon0;
if(u.getLastOnLine()!=nulonline=u.getLastOnLine().getTime();//设备在线时间,毫秒
Longnow=newDate().getTime();//当前时间毫秒
if((now-onlin/1000>10){
//10秒没有在线
returnerror(code+'没有在线');
}
sessiosetIp('120.0.1');//可以ip或者域名
sessiosetPort(345;//链接端口
sessiosetStatus(0);//当前是0
ss.insert(sessio;//存储
returnsuccess(sessio;//链接请求返回
}
else{
returnerror('识别码或者验证错误');
}
}
}
文章为作者独立观点,不代表股票交易接口观点