一、Cordova
参考官网--cordova开发大致流程如下
http://cordova.apache.org/docs/en/latest/guide/platforms/android/index.html#setting-gradle-properties
1)安装 node.js +环境变量
2) 使用npm 安装cordova
3)安装 SDK +环境变量2个
4)命令:android sdk 进入sdkManager 安装安卓api (sdk-tool用高版本的好,可以安装低版本的SDK)
5)eclipse 配置 hybrid mobile(可略)
cordova creat testapp
cd testapp
cordova platform add android@5 (看版本定 cordova-android5对应android6.0 api-23)
cordova build/compile android
//可加常用插件如下
cordova plugin add cordova-plugin-geolocation;
cordova plugin add cordova-plugin-device
cordova plugin add cordova-plugin-file;
cordova plugin add cordova-plugin-camera
cordova plugin add cordova-plugin-dialogs
1)cordova run android会碰到adb高版本问题,导致无法运行。
网上办法是换低版本adb,我的处理是不处理。
2)apk要签名才可以运行,debug版本含签名。
keytool -genkey -v -keystore release-key.keystore -alias cordova-demo -keyalg RSA -keysize 2048 -validity 10000
新建file
/HelloCordova/platforms/android/release-signing.properties
storeFile=relative/path/to/keystore
storePassword=SECRET1
keyAlias=ALIAS_NAME
keyPassword=SECRET2
二、Springboot 结合websocket要点
版本:spring-boot 2.02 java8
1)服务端进行websocket配置,有二种方式实现(Spring或tomcat),使用tomcat(内置时)注意添加ServerEndpointExporter 上tomcat环境运行时去掉。
两种实现方式,前端数据接收有差异。
package com.zihai.websocket.test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.socket.config.annotation.EnableWebSocket;
import org.springframework.web.socket.config.annotation.WebSocketConfigurer;
import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry;
/**
* 使用springboot的唯一区别是要@Component声明下,而使用独立容器是由容器自己管理websocket的,但在springboot中连容器都是spring管理的。
* */
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
@Configuration
//s@EnableWebSocket
public class WebSocketConfig
//implements WebSocketConfigurer
{
Logger log = LoggerFactory.getLogger(getClass());
/**内置容器添加扫描serverEndPoint*/
@Bean
public ServerEndpointExporter serverEndpointExporter(){
log.info("do serverEndpointExporter……");
return new ServerEndpointExporter();
}
/* @Override
public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) {
log.info(getClass().getSimpleName()+" registring");
registry.addHandler(marchHandler(), "/wstest");
}
@Bean
public MyHandler marchHandler(){
return new MyHandler();
}*/
}
2)通讯过程中可能会出现java无法连接jmx bug.端口无法使用,在参数里添加 -Djava.net.preferIPv4Stack=true
3)如果依赖了spring-boot-jdbc,而未配置数据源,记得如下添加
@SpringBootApplication
//(exclude= {DataSourceAutoConfiguration.class})
public class Example {
public static void main(String[] args) throws Exception {
SpringApplication.run(Example.class, args);
}
}
4)Websocket通讯时注意错误处理,及时remove断开的Session。否则服务器异常。
保持连接需要使用客户端发送心跳检测。
5)记得打war包时注意去掉tomcat内置服务器。
6)nginx 1.3版本才支持,添加参数如下
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
location /myapp/websocket/ {
proxy_pass http://tomcat_server;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
三 关于framwork 7
1)项目很好,但坑还是有的……心态放好吧。
强调版本!,如果使用V3的话,注意网址:framework7.io/vue/ 。不要使用国内站点,有版本差异!
建议从git Fork F7的项目看 kitchen的demo以及simple-template项目的简单的例子。
git项目服务端地址:https://github.com/SirliuZihai/chat.git
以后项目还是会维护的!!!
项目处于实验探索期,我把名字从chat 转为secratry,并此为契机,秉持"技术改变生活"的理念,以后会添加更有意思的内容,欢迎git留言。