
岁月会计云——通讯
文章平均质量分 73
websocket、modbus等协议
warrah
岁月会计云
展开
-
openfire启动源码解析
源码对应openfire4.0.2,org.jivesoftware.openfire.XMPPServer类. initialize方法主要做了三件事 1.从openfire.xml中加载字符集信息。 2.初始化缓存 3. 获取openfire的domain、版本信息。 initStatistics主要干了两件事 1.添加read统计 2.添加write统计 其他的代码逻辑,源码的注原创 2016-09-19 21:51:41 · 252 阅读 · 0 评论 -
java.lang.IllegalArgumentException: Illegal JID
1 问题描述 做微信在线客服时,连接openfire,跟踪源码,出现如下问题。而且发现起了很多线程。Exception in thread "httpbind-worker-12" java.lang.IllegalArgumentException: Illegal JID: zx0001@[object HTMLInputElement]/Strophe at org.xmpp.pac原创 2016-09-20 13:15:22 · 1350 阅读 · 0 评论 -
Strophe反复重连openfire的问题
1 问题描述 使用Strophe连接openfire,成功连接后。登录到openfire管理控制台,删除此人的会话,出现的现象是,Strophe重新连接openfire,但是连接成功,会立马断开连接,然后重连服务器 错误信息2016.09.21 11:41:58 org.jivesoftware.openfire.http.HttpBindServlet - Error sending原创 2016-09-21 14:01:42 · 2383 阅读 · 1 评论 -
openfire插件编译异常
1 问题描述 执行build,发现以下异常Buildfile: F:\openfirework\openfire_src\build\build.xmlplugin: [delete] Deleting directory F:\openfirework\openfire_src\work\plugins-dev\IcstPlugin [mkdir] Created dir: F:原创 2016-09-18 15:41:37 · 1049 阅读 · 0 评论 -
Unable to authenticate: Fail to create new session
1 问题描述 手机app或者基于微信的软件,连接openfire的时候提示如下错误2016.09.18 17:42:54 org.jivesoftware.openfire.server.ServerDialback[Acting as Originating Server: Create Outgoing Session from: dzm-pc to RS at: 192.168.4.18原创 2016-09-18 19:11:00 · 4046 阅读 · 0 评论 -
在线客服openfire设置
1 脱机消息 既然是在线客服,那么客服下线了,从设计上考虑就不应该接受到客户的离线消息。如果某个客服异常断开连接,则应该为客户重新分配客服。继而客户对新的客服进行在线聊天。 所以openfire中脱机消息应该设置为“退回”。原创 2016-09-19 14:11:49 · 1389 阅读 · 0 评论 -
openfire单节点部署
1 openfire安装 openfire下载地址tar -zxvf openfire_4_0_2.tar.gz vi /etc/profile,添加以下代码,注意source /etc/profile使之生效export OPENFIRE_HOME=/application/openfireexport PATH=$PATH:$OPENFIRE_HOME/binopenfire start #原创 2016-09-07 11:30:07 · 652 阅读 · 0 评论 -
openfire插件开发准备
openfire源码下载,JDK要求1.7及1.7以上。 配置openfire环境参考Eclipse下OpenFire4.0.2源码配置+简单插件开发,差别是不需要使用jsp-api.jar、spdy-http.jar,然后引入:org.eclipse.jetty.apache-jsp.jar、org.mortbay.jasper.apache-el.jar、org.mortbay.jasper.原创 2016-09-09 13:10:22 · 341 阅读 · 0 评论 -
AccountManager.createAccount异常
1 问题描述conflict(409) at org.jivesoftware.smack.AccountManager.createAccount(AccountManager.java:240) at org.jivesoftware.smack.AccountManager.createAccount(AccountManager.java:203)2 smack创建用户代码原创 2016-09-18 19:43:41 · 1122 阅读 · 0 评论 -
javax.ws.rs.core.UriBuilder.uri异常
1 问题描述 查看openfire中错误日志发现;java.lang.AbstractMethodError: javax.ws.rs.core.UriBuilder.uri(Ljava/lang/String;)Ljavax/ws/rs/core/UriBuilder; at javax.ws.rs.core.UriBuilder.fromUri(UriBuilder.java:119原创 2016-09-18 17:28:54 · 6289 阅读 · 0 评论 -
XMPP协议
XMPP(eXtensible Messaging Presence Protocol,可扩展消息处理和现场协议),是一种用来在两个地点之间传递小型的结构化数据段的协议。 XMPP已被用来构建大规模即时通信系统、Internet游戏平台、搜索引擎、语音、视频会议系统。大多数社交媒体构造(Facebook、MySpace、Twitter)也是采用XMPP协议。 1 XMPP网络 1.1 服务器原创 2016-09-13 09:29:18 · 379 阅读 · 0 评论 -
spring websocket集群
做项目使用websocket网上的方案很多,但是如果是产品或者平台,采用的是微服务架构,而每个微服务都可能有异步消息处理,想采用websocket,对于前端处理就会产生一个问题,那就是前端vue是SPA应用,它与后台建立一个websocket连接,如果每个微服务都建立一个连接,前端代码岂不是非常复杂。从下图可以看到前端应用只需要跟消息微服务建立websocket连接即可,后台业务逻辑处理,调用消息服务提供的dubbo接口,再通过消息服务将响应结果推送给前端应用,整个流程就完整了。接下只需要考虑消息微服原创 2021-10-31 10:42:51 · 3294 阅读 · 0 评论 -
python-oauth2实现开放接口
python oauth2.0开放接口原创 2022-08-24 17:05:57 · 1263 阅读 · 0 评论 -
开放平台设计
1 开放接口appid和appSecret:为每个应用接入方分配,appid是唯一确定某个应用,appSecret是long-term key,故而为了安全需要可以销毁重新生成。双向认证这里介绍了long-term key是什么。时间戳随机数签名令牌2 API网关3 安全认证Oauth2.04 https...原创 2021-11-02 19:58:09 · 850 阅读 · 0 评论 -
springsecurity oauth2.0
参考了Springboot2+SpringSecurity+Oauth2+Mysql数据库实现持久化客户端数据1 基本环境搭建1.1 数据库脚本数据库脚本从官方spring-security-oauth中获取,根据你需要创建对应的表.我这里用到了下面几张表。1.2 ouath2.0相关jar引入对应的jar,与security和oauth2.0相关的<!--security oauth2.0配置--> <dependency>原创 2022-02-08 19:34:45 · 3825 阅读 · 0 评论 -
js与后端联调加解密的麻烦
AES GMT时区问题 补位原创 2022-03-01 14:00:21 · 1036 阅读 · 0 评论 -
springboot中根据配置屏蔽接口返回字段
很多时候就是为了偷懒,swagger可以屏蔽接口文档中的字段,却不能屏蔽真实返回的数据,故而需要再controller返回的时候再做处理参考了springboot2 jackson 实现动态返回类字段,做了一些改动<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjweaver</artifactId>原创 2022-03-22 12:39:22 · 2470 阅读 · 3 评论 -
springfox swagger接口
现在的技术发展还是很迅猛,子曰:“志于道,据于德,依于仁,游于艺”,既然当年弃工程力学转向软件这个行业,就需要“游”于各种技术之中,虽然年长了,但还是应该熟悉这些新兴的技术,“自古美女如良将,不许人家到白头”,技术人员及时走到管理岗位又怎么样,庞统一天治理一个县城,那是基本功,这些基本功怎么能因为你到了管理岗位就可以不学呢?当年从北京回武汉,在公司接触了CMMI5,明白应该按照规范的流程做事情,因为那个是最佳实践的沉淀,接口文档用word写的很清楚,通讯协议、入参、出参、加密方式、签名方式、调用时序图都要原创 2021-05-09 10:53:23 · 3011 阅读 · 0 评论 -
DV EV OV证书
很多年前一直想给自己做的产品加上CA证书,之前CA证书需要经过浏览器认证,自签名的证书浏览器还会给出警告。直到19年的时候因为微信小程序必须要证书,才接触到DV证书。21年当我再次想到是否需要该买证书的时候,我又想到了DV证书,在阿里上可以免费购买证书,通过配置nginx,验证是否可行呢,结果是ok的。过年的夙愿终于得以实现,而且还没有花钱。server { listen 80; server_name www.dzmsoft.com; return 3原创 2021-08-11 20:11:38 · 337 阅读 · 0 评论 -
netty
不得不说尼恩编著的《Netty、redis、zookeeper高并发实战》写的非常好,让我明白IO是怎么回事1 高并发IO主要的IO模型有四种,同步阻塞IO,同步非阻塞IO,IO多路复用、异步IO,这里记录一下理解的内容。1.1 同步阻塞IO与同步非阻塞IOjava所有的socket连接的IO操作默认都是同步阻塞IO,因为在阻塞等待数据期间,用户线程挂起,故而在阻塞期间基本不会占用CPU资源,虽然这是个优点,但是在高并发情况下,就需要大量的线程来维护这些连接,又将涉及内存、线程切换的开销。而同步非原创 2021-08-01 12:06:43 · 155 阅读 · 0 评论 -
hession通信
这里是回忆一下2017年的时候,用到的hession通信,需求是将索道的上位机传感器数据上传到云端,2个client端,向1个server端发送数据,这个模式想对比较简单。hessian首先是一个RPC框架,基于HTTP协议传输,使用hessian进行二进制序列化,效率高于 WebService 和 Java 自带的序列化。我们知道序列化是便于持久化存储和网络传输,这里再对比一下其他的序列化协议,java序列化框架(protobuf、thrift、kryo、fst、fastjson、Jackson、gso原创 2021-03-27 11:48:30 · 449 阅读 · 0 评论 -
thrift通讯协议
总结一下2017年的时候使用的技术1 java中的使用1.1 生成thrift文件thrift-generator下载一下源码,自己编译一下。pom.xml<dependency> <groupId>org.apache.thrift</groupId> <artifactId>libthrift</artifactId> <version>0.10.0&原创 2020-12-30 21:51:06 · 453 阅读 · 0 评论