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

OpenFire源码学习之二十六:SparkTinder

因为这两块比较简单,内容也比较少。所以就放一块了。

Spark

这里的spark是指openfire的一个客户端,并非目前非常流行的大数据计算框架spark

Spark页面图:

Spark的源码构建

Spark的源码构建和openfire都差不多。

也都非常的简单。源码目录如下:

Spark也是用ant来编译源码的

源码启动类:

Tinder

Tinderopenfire官网对xmpp协议做的一个java对象封装。其中源码的内容也不多。下面是一张源码结构图:

下面略略的看看里面的源码。首先看看Packet这个类。 位于org.xmpp.packet下。这里是xmpp消息包的基本属性配置。比如to、from、id、error等。他有三个大的分类,如图:

IQ又生出了不通的类型。比如type

public enum Type {

        /**
         * The IQ is a request for information or requirements.
         */
        get,

        /**
         * The IQ provides required data, sets new values, or
         * replaces existing values.
         */
        set,

        /**
         * The IQ is a response to a successful get or set request.
         */
        result,

        /**
         * An error has occurred regarding processing or delivery of a
         * previously-sent get or set.
         */
        error;

   }

在之前,我有写过不同的消息类型比如“sgo”其实这之类的拓展都是基于修改这些包里面的类容就行了。

关于JID的拓展

private final String node;

private final String domain;

private final String resource;

默认情况下有三个属性,如何添加新的属性就比较简单了吧。按照上面任意一个属性添加到相关的方法即可。



转载于:https://www.cnblogs.com/huwf/p/4273342.html

相关文章:

  • C#抓取网页数据分析
  • POJ 3301
  • 几个常用Request.ServerVariables的中文
  • CodeForces 132C 一道简单 dp
  • 详解C#正则表达式语法的相关规则
  • PHP-cli简介
  • 致创业者的一封信(转)
  • DOM(转)
  • 修改文件注册数据库连接配置,可不在Net Manager里配置
  • Apache+Mod_Python配置
  • 【BestCoder】【Round#29】
  • struts2Demo
  • 总有一款合适你--ARM下裸机开发环境大全
  • 关于javascript原型链的个人理解
  • 项目管理学习笔记二:信息系统服务管理
  • Google 是如何开发 Web 框架的
  • [译]如何构建服务器端web组件,为何要构建?
  • 【140天】尚学堂高淇Java300集视频精华笔记(86-87)
  • 77. Combinations
  • CAP 一致性协议及应用解析
  • ES6系列(二)变量的解构赋值
  • flutter的key在widget list的作用以及必要性
  • JavaScript函数式编程(一)
  • Laravel核心解读--Facades
  • node入门
  • Otto开发初探——微服务依赖管理新利器
  • python3 使用 asyncio 代替线程
  • vue总结
  • 不上全站https的网站你们就等着被恶心死吧
  • 缓存与缓冲
  • 基于 Babel 的 npm 包最小化设置
  • 理解 C# 泛型接口中的协变与逆变(抗变)
  • 利用jquery编写加法运算验证码
  • 名企6年Java程序员的工作总结,写给在迷茫中的你!
  • 前端学习笔记之原型——一张图说明`prototype`和`__proto__`的区别
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 用element的upload组件实现多图片上传和压缩
  • 用Node EJS写一个爬虫脚本每天定时给心爱的她发一封暖心邮件
  • 怎么将电脑中的声音录制成WAV格式
  • 中文输入法与React文本输入框的问题与解决方案
  • 走向全栈之MongoDB的使用
  • “十年磨一剑”--有赞的HBase平台实践和应用之路 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​你们这样子,耽误我的工作进度怎么办?
  • # 执行时间 统计mysql_一文说尽 MySQL 优化原理
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • #Lua:Lua调用C++生成的DLL库
  • (42)STM32——LCD显示屏实验笔记
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (论文阅读笔记)Network planning with deep reinforcement learning
  • (三)Hyperledger Fabric 1.1安装部署-chaincode测试
  • (算法)Game
  • (学习日记)2024.03.25:UCOSIII第二十二节:系统启动流程详解
  • (原創) 如何將struct塞進vector? (C/C++) (STL)