2022-08-18 19:57
@hhchor 交互思维不对哦,不是HTTP的交互,这个是MQTT传输协议,发布和订阅的交互模式。
所以设备处理完业务时是给服务器发送一个“我处理完了”的消息:MqttClientKit.publish("mica", "hello".getBytes(StandardCharsets.UTF_8)); 这样子的。服务器收到再处理了。
2022-08-15 22:15
@hhchor 如果是我做,大概会用数据库创建用户设备表:accountId, clientId 字段。
设备端注册用:mqttClientCreator.clientId(clientId)
服务端发布用:MqttServerKit.publish(clientId, String topic, ByteBuffer payload);
服务端搭配JF使用HTTP接口:用户使用APP调用HTTP接口,携带自己设备的clientId参数进行JF里业务操控发布publish消息到设备。平台就搭好了
2022-08-04 12:26
@北流家园网 那你可以用用 一键部署阿里云,我以前有分享过 https://jfinal.com/share/1262
maven 也可以配置直接部署到自建服务器,可以试试
2022-08-03 09:56
传统如Tomcat项目,修改项目文件,比如Java的时候有个方法参数类型变更后,其他调用类不更改,但是编译时class是变了。只上传修改的那个Java对应class就会线上报错本地好使的问题。
jfinal-undertow部署maven项目,一般项目打包的业务jar里面只要class即可,这样jar压缩后就没多大才对,而且只替换一个文件,反而方便安全了。
如果打包后的jar比较大,建议用解压工具打开jar,看看是不是把配置文件或者资源文件打包到里面去了。如果确实打入了,可以在xml中配置排除。
我记得还可以配置一个文件夹,把项目文件class扔进去,也可以被加载进去,具体没试验,不喜欢用
2022-07-01 15:15
@azzcsimp 明白你的意思了,项目如果是Tomcat运行,是class运行,上面写是没有问题,优先加载的 WEB-INF/classes文件。 如果是jfinal-undertow运行的话,最后项目class也会被打为jar,加载的时候就会报错。 推荐自建一个 BaseController 里面覆写 getFiles 系列方法,new 自建的类就可以了,文件上传前面就不再拦截了
2022-06-30 14:53
@azzcsimp multipart/form-data HTTP格式里面请求数据是用分隔符分隔的,又不是JSON格式的,所以你那个EpRequestWrapper里面需要支持application/json的同时也要支持multipart/form-data 格式