framwork7-Vue+cordova+spring-boot移动APP通讯实践心得

一、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留言。

你可能感兴趣的:(java)