当前位置: 首页 > news >正文

如何做电影网站狼视听自己做商务网站有什么利弊

如何做电影网站狼视听,自己做商务网站有什么利弊,wordpress 换行符,wordpress替换谷歌字体库MQTT Paho Android 支持SSL/TLS(亲测有效) 登录时支持ssl的交互 这是调测登录界面设计 代码中对ssl/tls的支持 使用MqttAndroidClient配置mqtt客户端请求时,不加密及加密方式连接存在以下几点差异: url及端口差异 val uri: String if (tlsConnect…

MQTT Paho Android 支持SSL/TLS(亲测有效)

登录时支持ssl的交互

这是调测登录界面设计

代码中对ssl/tls的支持

使用MqttAndroidClient配置mqtt客户端请求时,不加密及加密方式连接存在以下几点差异:

url及端口差异

 val uri: String = if (tlsConnection) {"ssl://$host:$port"} else {"tcp://$host:$port"}

支持tls时,url前缀是ssl:
普通mqtt连接时候,前缀是tcp

端口差异:
tcp请求时,默认端口1883
ssl请求时,默认端口是8883

socketFactory配置项

笔者项目中只支持单向验证,即客户端验证服务端,所以需要在客户端加载服务端证书用于ssl连接

 if(connection.isSSL == 1){//单项验证,客户端验证服务端,onenet提供的.pem证书,需要用keytool转成java支持的bks、或者jks等connOpts.socketFactory = connection.client.getSSLSocketFactory(context.assets.open("MQTTS-certificate.bks"), "12345678")connOpts.isHttpsHostnameVerificationEnabled = falseconnOpts.setSSLHostnameVerifier { _, _ -> true  }}

说明:

  1. java中不支持pem证书加载,所以需要使用keytool工具将pem格式证书转成java/android支持的bks或者jks等
 keytool -importcert -v -trustcacerts -file ./MQTTS-certificate.pem -alias ca -keystore ./mqtt.bks -storetype BKS -provider org.bouncycastle.jce.provider.BouncyCastleProvider -providerpath ./bcprov-ext-jdk18on-176.jar

bcprov-ext-jdk18on-176.jar需要从以下地址下载
https://www.bouncycastle.org/latest_releases.html

  1. 证书中会涉及域名验证,如果证书中缺少这个字段,那么运行时候会报下面错误
    MqttException (0) - javax.net.ssl.SSLHandshakeException: No subjectAltNames on the certificate match
    解决办法是跳过域名及host验证的流程
connOpts.isHttpsHostnameVerificationEnabled = false
connOpts.setSSLHostnameVerifier { _, _ -> true  }

client.getSSLSocketFactory实现

下面我们看看MqttAndroidClient创建sslSocketFactory的具体实现代码。

//info.mqtt.android.service.MqttAndroidClient/*** Get the SSLSocketFactory using SSL key store and password* A convenience method, which will help user to create a SSLSocketFactory* object** @param keyStore the SSL key store which is generated by some SSL key tool,* such as keytool in Java JDK* @param password the password of the key store which is set when the key store* is generated* @return SSLSocketFactory used to connect to the server with SSL* authentication* @throws MqttSecurityException if there was any error when getting the SSLSocketFactory*/@Throws(MqttSecurityException::class)fun getSSLSocketFactory(keyStore: InputStream?, password: String): SSLSocketFactory {return try {val sslSockFactory: SSLSocketFactoryval ts: KeyStore = KeyStore.getInstance("BKS")ts.load(keyStore, password.toCharArray())val tmf = TrustManagerFactory.getInstance("X509")tmf.init(ts)val tm = tmf.trustManagersval ctx: SSLContext = SSLContext.getInstance("TLSv1")ctx.init(null, tm, null)sslSockFactory = ctx.socketFactorysslSockFactory} catch (e: KeyStoreException) {throw MqttSecurityException(e)} catch (e: CertificateException) {throw MqttSecurityException(e)} catch (e: IOException) {throw MqttSecurityException(e)} catch (e: NoSuchAlgorithmException) {throw MqttSecurityException(e)} catch (e: KeyManagementException) {throw MqttSecurityException(e)}}

Github

https://github.com/hannesa2/paho.mqtt.android
https://github.com/eclipse/paho.mqtt.android

项目中涉及的sample示例代码很值得一探究竟,对你掌握MQTT相关支持很有帮助喔!

http://www.yayakq.cn/news/197981/

相关文章:

  • 沈阳网站建设培训院内设计
  • 济南建设信用网网站深圳网站建设jm3q
  • 影楼免费网站建设购物网站建设方案
  • 中英双语 网站 模板网站营销推广企业
  • 制作一个网站都需要学什么河南国邦卫可生物科技有限公司网站建设
  • 怎样做网站的二维码做网站运作国珍
  • 母婴网站建设方案wordpress上传excel文件
  • 各大网站开发的区块链wordpress点击安装出现乱码
  • 贸易网站怎么做我的专业网站建设策划书
  • 单页产品网站源码带后台大连网络建站公司分析
  • 房地产 网站模板wordpress 分类调用
  • 巨鹿网站建设公司网页 开发
  • 08网站建设vue大型网站怎么做路由
  • 做网站设计电脑需要什么配置网站上做404页面怎样做
  • 江西省寻乌县建设局网站多行业品牌企业公司网站模板
  • 临清网站制作公司wordpress图文安装
  • 网站界面优化大丰做网站价格
  • 中小企业网站制作塞尼铁克wordpress google 蜘蛛 频率
  • 辽宁工程建设信息网网站设计网站国外
  • 无忧网站建设报价公司经营范围
  • 公众号里链接的网站怎么做的郑州遗像制作
  • 现在网站开发哪个语言好网站建设 免费
  • 智能建站模板徐州注册公司
  • 江西省住房与城乡建设厅网站深圳市网络营销推广平台
  • 张家口网站建设vewan银行门户网站建设ppt
  • 网站开发应该学哪门语言影视公司排行榜
  • 地税城市维护建设税网站是什么app是什么意思怎么用
  • 微信做的团购网站深圳南山住房和建设局网站
  • 在线视频网站 一级做爰片wordpress邀请奖励
  • 柳州网站seo北京网络建站