扩展Smack Message】的更多相关文章

XMPP是一种基于标准通用标记语言的子集XML的协议,它继承了在XML环境中灵活的发展性. Smack是一个开源的用 java 写的XMPP(jabber)客户端代码库 因为XMPP是XML,所以进行扩展十分方便.而Smack也提供了对Message扩展的支持. Smack对Message扩展主要需要两个接口 org.jivesoftware.smack.packet.PacketExtensionorg.jivesoftware.smack.provider.PacketExtensionPr…
Smack框架对XMPP协议进行了封装,从而方便与Openfire即时通信服务器做交互.说白了,Smack框架可以通过对象构造符合XMPP协议的XML字符串,避免手动拼接字符串. XMPP协议基本XML结构如下: <message from='发送方jid' to='接收方jid' type='消息类型(普通消息/群聊)'> <body>消息内容</body> </message> 大多数情况下,这么简单的结构是满足不了需求的,我们可能会尝试向message…
转载:https://developer.chrome.com/extensions/messaging#external-webpage Message Passing Since content scripts run in the context of a web page and not the extension, they often need some way of communicating with the rest of the extension. For example,…
前几天一直很烦躁,怎么扩展smack的IQ包堵了我好久,今天静下心来看了下smack的源码,把这个问题解决了.下面给出步骤: 如果我们要扩展一个如下所示的IQ包: <iq id="0001" to="search@jiyq.cn" type=”get”> <query xmls="emcc.jiyq" condition="what"/> <extrament>element</ext…
一般情况下,#pragma message( messagestring )是在编译期间,将一个文字串(messagestring)发送到标准输出窗口.典型的使用方法是在编译时报告和显示信息.下面的代码段是编译期间在标准输出窗口显示一条消息: #if _M_IX86 == 500#pragma message( "Pentium processor build" )#endif messagestring 参数可以将文字串常量扩展成一个宏,从而可以显示任何形式的字符串.例如,下面的语句…
扩展原因 有一WebService,在工程中添加Web Service引用后调用不成功,但是用SoapUI测试正常 分析 用tctTrace跟踪报文后发现wcf生成的报文命名空间与SoapUI的不一样 解决办法 扩展WCF Message,具体如下: 第一步.自定义Message: public class MyCustomMessage : Message { private readonly Message message; public MyCustomMessage(Message me…
以下内容主要整理自官方文档. 为什么使用 Protocol Buffers .proto文件 Protocol Buffers 语法 编译.proto文件 Protocol Buffers API 枚举和嵌套类 Builders vs. Messages 解析和序列化 Writing A Message Reading A Message 扩展协议 编码 对比XML 和 JSON 数据大小 序列化性能 解析性能 为什么使用 Protocol Buffers 通常序列化和解析结构化数据的几种方式?…
Protocol Buffer使用简介 字数2630 阅读5067 评论1 喜欢12 我们项目中使用protocol buffer来进行服务器和客户端的消息交互,服务器使用C++,所以本文主要描述protocol buffer C++方面的使用,其他语言方面的使用参见google的官方文档. 1.概览 1.1 什么是protocol buffer protocol buffer是google的一个开源项目,它是用于结构化数据串行化的灵活.高效.自动的方法,例如XML,不过它比xml更小.更快.也…
James+Javamail构建邮件服务(一) 本文描述如何使用James搭建具备一定邮件过滤.邮件操作功能的邮件服务器,以及使用Javamail实现对James服务器邮件的收发功能. 1关于James与Javamail Apache James(Java Apache Mail Enterprise Server)是Apache组织的子项目之一,完全采用纯Java技术开发,实现了SMTP.POP3与NNTP等多种邮件相关协议.James是一个 邮件应用平台,可以通过Mailet扩充其功能,如M…
一:protobuf编码基本数据类型 public enum FieldType { DOUBLE (JavaType.DOUBLE , WIRETYPE_FIXED64 ), FLOAT (JavaType.FLOAT , WIRETYPE_FIXED32 ), INT64 (JavaType.LONG , WIRETYPE_VARINT ), UINT64 (JavaType.LONG , WIRETYPE_VARINT ), INT32 (JavaType.INT , WIRETYPE_V…
前言 作为全球最大的开放源代码托管平台,Github在上周迎来了它的十岁生日.自从2008年正式上线以来,Github上面汇聚了数以千万计的开发人员和各种项目,它几乎成为了开源的代名词和风向标,各大软件巨头都纷纷支持,在广大程序员心目中,也更是精神图腾一般的存在,坊间戏言它是最大的同性交友平台. 我自己对开源了解不多,并且能力也有限,一直没有在这方面有所贡献,但我肯定和大家一样都是Github的受益者.今天这篇文章一方面是希望借此为Github庆生(本来是上周想写,但一直没有时间),另外也是因为…
接下来的这些博客,主要内容来自<Learning Apache Kafka Second Edition>这本书,书不厚,200多页.接下来摘录出本书中的重要知识点,偶尔参考一些网络资料,并伴随着一些动手实践,算是一篇读书笔记吧. 本文是第一篇,主要从整体上梳理Kafka的基本架构和原理. 一.什么是Kafka Kafka是一个开源的,分布式的消息发布和订阅系统,它由Producer, Consumer和Broker组成.使用Kafka可以实时传递和处理一些Message.总的来说,Kafka…
本文记录开发.实现IMS项目时,整理的SIP协议基础知识:若有侵权,请告之. SIP协议 1.      SIP协议简介 SIP是一个应用层的控制协议,可以用来建立.修改.和终止多媒体会话(或者会议)例如Internet电话.SIP也可以邀请参与者参加已经存在的会话,比如多方会议.媒体可以在一个已经存在的会话中方便的增加(或者删除).SIP显示的支持名字映射和重定向服务,这个用于支持个人移动业务-用户可以使用一个唯一的外部标志而不用关系他们的实际网络地点.SIP在建立和维持终止多媒体会话协议上,…
最近,经常有朋友问到,如何集成环信头像,怎么才能快速显示头像,因时间紧急,很多朋友都没有时间慢慢的研究代码,这里大家稍微花10分钟看一下文章,看完后再花5分钟改一下代码,即可达到你们所要的效果. 当然这个是在你直接复制了demo中的工具类和必要的UI的前提下实现的.简短说明简单暴力的方法:除UI外的其他所有类先复制到自己工程中,UI部分MainActivity中的代码需要一个一个复制过去,如与自己项目冲突的需要调整,然后ChatActivity/ChatFragment也复制过去,这就可以进行聊…
从消息扩展中获取昵称和头像 昵称和头像的获取:把用户基本的昵称和头像的URL放到消息的扩展中,通过消息传递给接收方,当收到一条消息时,则能通过消息的扩展得到发送者的昵称和头像URL,然后保存到本地数据库和缓存.当显示昵称和头像时,请从本地或者缓存中读取,不要直接从消息中把赋值拿给界面(否则当用户昵称改变后,同一个人会显示不同的昵称). 昵称和头像的更新:当扩展消息中的昵称和头像URI与当前本地数据库和缓存中的相应数据不同的时候,需要把新的昵称保存到本地数据库和缓存,并下载新的头像并保存到本地数据…
kafka 权威指南中文版 问题导读 1. 为什么数据管道是数据驱动企业的一个关键组成部分? 2. 发布/订阅消息的概念及其重要性是什么? 第一章 初识 kafka 企业是由数据驱动的.我们获取信息,分析它,处理它,并创造更多的产出.每一个应用程序都会产生数据,无论是日志消息.指标.用户行为.输出报文或者其他类型.每一个字节的数据都有它的作用,传入的数据会告诉接下来需要做什么.为了知道数据的意义,我们需要把数据从它产生的地方,传输到它能够被分析的地方.然后把分析的结果返回到它们能够被执行的地方.…
正如sqlite可以定义自定义函数,它是通过API定义c函数的,不像其他,如这里的mysql.sqlite提供原生接口就可以方便的调用其他语言的方法,同样的mysql也支持调用其它语言的方法. google "mysql call c function"发现一片文章 MySQL User Defined Functions  This tutorial explains what an User Defined Function (UDF) is, what it does and w…
Interceptor是CXF架构中一个很有特色的模式.你可以在不对核心模块进行修改的情况下,动态添加很多功能.这对于CXF这个以处理消息为中心的服务框架来说是非常有用的,CXF通过在Interceptor中对消息进行特殊处理,实现了很多重要功能模块,例如:日志记录,Soap消息处理,消息的压缩处.简单的说,可以在收到请求后,还未进行业务处理前,进行处理.或者在请求包发送前,进行报文的处理. Interceptor 定义两个方法,一个处理消息 handleMessage, 一个是处理错误 han…
上一篇文章 Office Add-in Model 为 Outlook Mail Add-in 提供的 JavaScript API 介绍 ,简单地在表格中列出了所有的 Object 定义,但是个人感觉表格仅适合列一些简单的内容,太多的话就不再直观了.本文沿着上篇的骨骼,对每个 Object 及 API 进行了扩展, 多数的东西都来自于官方文档( 尽量把分散在各地的补充说明归纳起来),我写这篇博文的目的并不是想把所有的 Object.方法.属性都涵盖,更多地是从 agile 开发的角度出发,这样…
本文所讨论的 Mailbox API是指在 Mail Add-in 中可调用的 JavaScript API.开发者可以利用这些API 实现 Add-in 和 Outlook 的交互(数据读取与写入).希望大家通过这个简单的介绍,认识到 Office Add-In Model 为开发者提供了多大程度和邮件打交道的能力,如果碰巧有正准备开发 Mail Add-in 的同学, 不妨快速扫下 API 列表,然后衡量下它们能不能支撑你完成自己的 Scenarios. 开始之前,需要明确几个问题: 本文中…
本文以PHP为例. 环境: CentOS 6.8 proto 3.8 PHP 7.1.12 PHP protobuf扩展 3.8.0 go1.12.5 linux/amd64 本文示例仓库地址: https://github.com/52fhy/protobuf-sample 是什么 Protobuf是一种平台无关.语言无关.可扩展且轻便高效的序列化数据结构的协议,可以用于网络通信和数据存储. 官方文档:https://github.com/protocolbuffers/protobuf 作为…
Protocol Buffer使用简介 我们项目中使用protocol buffer来进行服务器和客户端的消息交互,服务器使用C++,所以本文主要描述protocol buffer C++方面的使用,其他语言方面的使用参见google的官方文档. 1.概览 1.1 什么是protocol buffer protocol buffer是google的一个开源项目,它是用于结构化数据串行化的灵活.高效.自动的方法,例如XML,不过它比xml更小.更快.也更简单.你可以定义自己的数据结构,然后使用代码…
为什么要构建可伸缩的Web应用? 想象一下,你的营销活动吸引了很多用户,在某个时候,应用必须同时为成千上万的用户提供服务,这么大的并发量,服务器的负载会很大,如果设计不当,系统将无法处理. 接下来发生的就是,随机错误.缓慢的内容加载.无休止的等待.连接断开.服务不可用等问题. 辛辛苦苦吸引来的用户变成了系统的攻击者,把服务器资源耗尽,应用程序崩溃. 你的大多数用户将丢失,产品评级将降低,市场将充满负面评论. 所以,可伸缩性已经成为Web应用程序的DNA. 可伸缩应用架构简介 可伸缩架构的两个主要…
Node.js之Websocket技术 我第一次听说websocket之时,HTML5标准尚未公布,当时只有少数前瞻性浏览器携带了这个API. 我对websocket最大的印象是,他可以解决我对"在线聊天系统"开发的疑惑(我一直想不通http如何保持长连接),这样我们无需使用轮询ajax和php无限循环去模拟,还记得2014年初那会我写了一个在线聊天室,那时候我真的应该用websocket技术的,php无限轮询的方式,只要3-4个人在线就可以让linux+apache服务器崩溃. 很可…
前言 为了提高通信效率,可以采用 protobuf 替代 XML 和 Json 数据交互格式,protobuf 相对来说数据量小,在进程间通信或者设备之间通信能够提高通信速率.下面介绍 protobuf 在 ARM 平台上的使用. 简介 官方文档给出的定义和描述: protocol buffers 是一种语言无关.平台无关.可扩展的序列化结构数据的方法,它可用于(数据)通信协议.数据存储等. Protocol Buffers 是一种灵活,高效,自动化机制的结构数据序列化方法-可类比 XML,但是…
---------------  VM Arguments---------------  jvm_args: -Dosgi.requiredJavaVersion=1.6 -Dhelp.lucene.tokenizer=standard -Xms40m -Xmx256m -XX:MaxPermSize=128m java_command: <unknown>java_class_path (initial): C:\e\eclipse4.2\\plugins/org.eclipse.equi…
写此文是为了纪念我耗时两天的Smack库应用开发. 太苦恼了,网上找了一堆材料,关于XMPP的消息扩展方面的资料感觉都是出于同一个源头,基本问题还是基于的库版本都是低于4.1版本的讲解. 我是在Smack4.3版本上做应用开发的,所以即便看到这些资料对Message 和Extension的概念阐述已经颇为详细和易懂了,但是在我的项目中就是无法成功发送和接收到自定义消息扩展. 当然,我们这里不卖关子,直接指明:根本原因是Smack4.2及以后版本对于扩展消息的XML书写更规范了,以前的写法就不合乎…
前言 Java领域的即时通信的解决方案可以考虑openfire+spark+smack.当然也有其他的选择. Openfire 是基于Jabber协议(XMPP)实现的即时通信服务器端版本,目前建议使用3.8.1版本,这个版本是当前最新的版本,而且网上可以找到下载的源代码. 即时通信客户端可使用spark2.6.3,这个版本是目前最新的release版本,经过测试发现上一版本在视频支持,msn网关支持上可能有问题,所以选择openfire3.8.1+spark2.6.3是最合适的选择. Smac…
Problem Description Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important messages and she was preparing for sending it to ykwd. They had agreed that each letter of these messages would be transfered to a…
Clairewd is a member of FBI. After several years concealing in BUPT, she intercepted some important messages and she was preparing for sending it to ykwd. They had agreed that each letter of these messages would be transfered to another one according…