企业网站通常包含的栏目做360手机网站优化排

web/2025/9/27 14:25:24/文章来源:
企业网站通常包含的栏目,做360手机网站优化排,263企业邮箱登官网,wordpress 图片加水印插件XMPP XEP-0096协议是XMPP中的文件传输协议。 关于文件传输#xff0c;在xmpp协议中有不少协议可以实现#xff0c;而XEP-0096协议是其中非常简单的一个协议。由于邮件被删#xff0c;我的代码demo丢失#xff0c;因此只能在这里给大家讲一下其中的逻辑实现#xff0… XMPP XEP-0096协议是XMPP中的文件传输协议。       关于文件传输在xmpp协议中有不少协议可以实现而XEP-0096协议是其中非常简单的一个协议。由于邮件被删我的代码demo丢失因此只能在这里给大家讲一下其中的逻辑实现大家可以以此来写出代码。       首先申明一下以下是我个人对XEP-0096协议的一些认识和解释如有疑问请发邮件到lizhanzhishanggmail.com 欢迎交流~       我们根据openfire服务器做开发但是服务器在这里只是起路由寻址和转发的作用实质上是完全点对点的通信数据处理由客户端来做。       我们可以举一个栗子有两部手机互相之间使用message协议传递信息的完整message XML数据可以看看一个客户端发送的是什么信息另一个客户端接收的又是什么message信息要是一样说明的是服务器是转发的数据要是不一样的 话则可能带有IQ MSGPr信息。但是总是有例外的服务器也要对连接的数据做一些心跳包。       下面是一组请求(一方发出“发送文件”请求接收方发出“拒绝接受”请求)       这是”发送文件”的一段数据请求图片小可以双击放大      将接受方拒绝接受文件的信息返回给发送方      就此请求完毕一方发出了“发送文件”的请求另一方“拒绝”了这个请求。      这里有一个完整的数据传输协议在官方的文档上是这样写的 In order to enable seamless file transfer and appropriate fall-back mechanisms, implementations of this profile MUST support both SOCKS5 Bytestreams (XEP-0065) [4] and In-Band Bytestreams (XEP-0047) [5], to be preferred in that order. The associated namespaces are to be included as option values for the stream-method variable as shown in the examples below.       上面的意思是说文件传输实际上是有协议XEP-0065和XEP-0047来进行的而XEP-0096实际是传输IQ的消息协议真正的传输数据并不 在次协议中实现文件传输协议必须是full JID而且要求接收方在线。如果”to”(接收端) ”from”(发送端) 不是一个full JID服务器就会发送error信息到”发送端”说明服务器现在出现异常问题。      现在我们来说说在传输消息的时候该怎么具体组织消息      我们可以用IQ或者Message来发送数据。下面是我截取的文档中我觉得相当重要的部分 Each chunk of data is contained in a data/ element qualified by the http://jabber.org/protocol/ibb namespace. The data element SHOULD be sent in an IQ stanza to enable proper tracking and throttling, but instead MAY be sent in a message stanza. The data to be sent, prior to base64-encoding and prior to any wrapping in XML, MUST NOT be larger than the block-size determined in the bytestream negotiation.       上面说啥呢我英语也菜但是能看懂一点2个关键点一个是base64-encodingblock-size这个2个关键的单词说明我们在遇到 大文件的情况下是进行分块发送的每块的数据都是一定字节的例如我们发送数据1024字节但是那个流怎么发送呢都是二进制的。我们直接发送呢数 据太大不好整的再则直接转String呢那也是有问题的因为String遇到’\o’就说明数据结束会使数据漏掉很多。 文档中告诉我们将发送的文件转换为base64之后再转为String类型放入IQ或者Message数据格式中发送。关于base64的理论资料在 这里:http://zh.wikipedia.org/zh-cn/Base64      下面是一个数据实例      参考的url地址http://xmpp.org/extensions/xep-0096.html Use of Message Stanzas It is RECOMMENDED to use IQ stanzas when sending data packets. However, an application MAY use message stanzas instead. If message stanzas are used when sending data packets, the sender SHOULD also useAdvanced Message Processing (XEP-0079) [8] or some other stanza flow-control method. For proper tracking of delivery and processing errors related to data packets, the id attribute SHOULD be used with message stanzas.       上面的base64数据不一定用IQ发送还可以用Message发送。只是在参数上有个改变一下就可以哈哈。       例子如下所示       突然想起一件事情。。。在发送文件的时候会有一个带si 标签的数据段这个数据段有id。这个id很重要是必须要保存的。主要用在传输数据的时候要是这个sid要是没有带上那服务器就会返回错误信息给文件发送方。      还有个小事情我当初解析命名空间的时候以为是一般属性总是解析不出来。最后发现有专门解析命名空间的东西大家可以去google下。。。      下面是进行文件传输的XEP-0096协议的完整xml例子:数据协议都是人定的哈哈文件发送方:       我们可以对此IQ数据段解析当发现file 标签的命名空间是http://jabber.org/protocol/si/profile/file-transfer的 时候 则表明这是“文件传输”消息请求。说明有人要传文件了。对于这个xml请求我们在提取数据的时候必须提取si标签的ID。这个ID很 重要是下面的sid传输数据的重要参数也是判断是否是同一个数据流的依据。还有就是提取mine-type标签内容这个是我们用来判断接收的是何种 文件并以此判断创建该类型文件把将要传来的数据写入这个文件还有就是size标签内容来检验我们接收的文件是否完整。下面是一个完整的没有进行base64转换的数据请求:文件接收方:       这里说明我要接受的数据是什么协议主要在file var这个参数stream-method x submit这个表明我要接受数据你可以发给我了。 发送文件方:       其实也要实现这个xml的我不知道当我接受数据之后为什么要查询对方的机器名字和一些基本数据这可能是进行确认。      接受方发出本机基本信息主要有3个参数categoryclient nameSmack typepc      查询之后就开始要发数据了哈哈。      发出数据肯定要打开流发送数据结束也要关闭流的哈哈发送方发送打开消息      这个xml虽然很少但是每个数据都很重要呢。Open的命名空间很熟悉那。其实这个就是前面刚开始接受数据file里的valueblock- size说的是我每次传数据都是以4096字节发送一个数据流。 这个sid就是发送方发送请求文件的那个si标签的id。都是相同的同时还有一个重要的东西stanzaiq这个相当的重 要这个标签告诉对方我要以IQ数据类型发送数据这里也可以用message代替iq。前面我已经提及到。下面的是message发送base64数据如果stanzamessage” 自己可以参照IQ发送base64数据。过程基本一样就是iq变成message而已:接受方数据xml:       上面的2个IQ是顺序发送的不可逆第一个是主要告诉对方。同时那3个参数是上上面的一样的要不是无法接收到额还有一些对特征解释说明传输的可以哪些流、然后紧接着告诉对方我可以解释数据了。发送方开始发数据了哈哈      这个data的value是前面的数据块4096字节base64加密数据。如果数据base64大于这个块。我们接到这个数据首先要base64解密之后再写入刚才建立的文件中Sid是上面我们说的第一次si 标签的id。不能改变更不能为null。也不要不设置不然服务器就会返回错误信息。 Seq是从0开始的如果还有流就会依次递增的如果接受处理完毕就发送一个iq。说明接受完成  说明一下哈data里的数据被我删掉N多,我这主要是说明用。接受方      发一个一个4096字节base64加密数据。这个是源文件base64加密偏移的数据。      上面的seq变成1了而sid依然没变。接受完成处理后一样要回复一下告诉他可以继续传数据了。      最后就是base64加密完成传输要colse掉数据。      发送方关闭流这个sid依旧没有变协议是这样规定的:      好吧我知道你关闭流了。我们之间的文件传输完成了:写了几个小时分析真的累。哎下面贴出完整的流程xml下面是整个对话阶段的xml数据: A:发送方 B:接收方 A:iq idx36vr-54 tozhufudomian/android fromsaoniandomian/android typeset  si xmlnshttp://jabber.org/protocol/si idjsi_3326887048779603188 mime-typeimage/png profilehttp://jabber.org/protocol/si/profile/file-transfer    file xmlnshttp://jabber.org/protocol/si/profile/file-transfer nameimage_9T.png size5204      descSending file/desc    /file    feature xmlnshttp://jabber.org/protocol/feature-neg      x xmlnsjabber:x:data typeform        field varstream-method typelist-single          option            valuehttp://jabber.org/protocol/bytestreams/value          /option          option            valuehttp://jabber.org/protocol/ibb/value          /option        /field      /x    /feature  /si/iq复制代码B:iq idx36vr-54 tosaoniandomian/android fromzhufudomian/android typeresult  si xmlnshttp://jabber.org/protocol/si    feature xmlnshttp://jabber.org/protocol/feature-neg      x xmlnsjabber:x:data typesubmit        field varstream-method          valuehttp://jabber.org/protocol/bytestreams/value          valuehttp://jabber.org/protocol/ibb/value        /field      /x    /feature  /si/iq复制代码A:iq idx36vr-55 tozhufudomian/android typeget fromsaoniandomian/android  query xmlnshttp://jabber.org/protocol/disco#info/query/iq复制代码B:iq idx36vr-55 tosaoniandomian/android typeresult fromzhufudomian/android  query xmlnshttp://jabber.org/protocol/disco#info    identity categoryclient nameSmack typepc/    feature varhttp://www.xmpp.org/extensions/xep-0166.html#ns/    feature varurn:xmpp:tmp:jingle/  /query/iq复制代码A:iq idx36vr-56 tozhufudomian/android typeset fromsaoniandomian/android  open xmlnshttp://jabber.org/protocol/ibb block-size4096 sidjsi_3326887048779603188 stanzaiq  /open/iq复制代码B:iq idx36vr-55 tosaoniandomian/android typeresult fromzhufudomian/android  query xmlnshttp://jabber.org/protocol/disco#info    identity categoryclient nameSmack typepc/    feature varhttp://jabber.org/protocol/xhtml-im/    feature varhttp://jabber.org/protocol/muc/    feature varhttp://jabber.org/protocol/bytestreams/    feature varhttp://jabber.org/protocol/commands/    feature varhttp://jabber.org/protocol/si/profile/file-transfer/    feature varhttp://jabber.org/protocol/si/    feature varhttp://jabber.org/protocol/ibb/  /query/iq复制代码B:iq idx36vr-56 tosaoniandomian/android fromzhufudomian/android typeresult/复制代码A:iq idx36vr-57 tozhufudomian/android typeset fromsaoniandomian/android  data xmlnshttp://jabber.org/protocol/ibb seq0 sidjsi_3326887048779603188iVBORw0KGgoAAAANSUhEUgAAAEMAA  /data/iq复制代码B:iq idx36vr-57 tosaoniandomian/android fromzhufudomian/android typeresult/复制代码A:iq idx36vr-58 tozhufudomian/android typeset fromsaoniandomian/androiddata xmlnshttp://jabber.org/protocol/ibb seq1 sidjsi_3326887048779603188dcwRxoSYEFYOgxc0Qx2TSCNDSJZRTxKFgVmZiKFN/data/iq复制代码B:iq idx36vr-58 tosaoniandomian/android fromzhufudomian/android typeresult/复制代码A:iq idx36vr-59 tozhufudomian/android typeset fromsaoniandomian/androidclose xmlnshttp://jabber.org/protocol/ibb sidjsi_3326887048779603188//iq复制代码B:iq idx36vr-59 tosaoniandomian/android fromzhufudomian/android typeresult/复制代码 转载于:https://my.oschina.net/vdroid/blog/202261

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/81088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

asp 网站 内容静态化杭州e时代网站建设

NMAP 是一个极其强大的网络扫描、监视和漏洞管理工具。 NMAP 命令的典型格式如下。 nmap -function --script脚本名称 <目标> 目标可以是主机 (192.168.0.1) 或网络 (192.168.0.0/24) 典型开放端口&#xff08;服务&#xff09;扫描 nmap -sV <目标> nmap -sV &…

泰州市靖靖建设局网站南宁市做网站

数据容器入门 Python中的数据容器&#xff1a; 一种可以容纳多份数据的数据类型&#xff0c;容纳的每一份数据称之为1个元素 每一个元素&#xff0c;可以是任意类型的数据&#xff0c;如字符串、数字、布尔等。 数据容器根据特点的不同&#xff0c;如&#xff1a;是否支持重复元…

帝国网站管理系统 数据库wordpress主题更新了

目录 一、维护BP主数据业务伙伴BP的概念业务伙伴涉及的表业务伙伴维护操作一次性客商数据 二、维护物料主数据三、维护采购信息记录四、与FI相关集成点物料主数据的价格控制评估类与科目确定 一、维护BP主数据 业务伙伴BP的概念 在S/4HANA中&#xff0c;SAP引入了BP(Business…

珠海网站建设模板建设网站开发公司

使用 Python 爬取站长素材简历模板 简介 在本教程中&#xff0c;我们将学习如何使用 Python 来爬取站长素材网站上的简历模板。我们将使用requests和BeautifulSoup库来发送 HTTP 请求和解析 HTML 页面。本教程将分为两个部分&#xff1a;第一部分是使用BeautifulSoup的方法&am…

公益网站建设 参考文献网站服务空间

java oca我在业余时间正在阅读Mala Gupta的Oracle认证Java SE程序员助理书&#xff0c;我对所学到的一些新知识感到惊讶。 有时候他们真的没有道理&#xff0c;有时候他们说得通&#xff0c;但真的让人惊讶。 因此&#xff0c;在本系列文章中&#xff0c;我想将它们共享为“ Ja…

seo网站推广的作用淘宝店铺怎么买

一&#xff1a;图的基本概念和术语 1.图之间的关系可以是任意的&#xff0c;任意两个数据元素之间都可能相关。 2.顶点&#xff1a;数据元素。 3.边or弧&#xff1a;从一个顶点到另一个顶点的路径。<V, W>表示弧&#xff0c;&#xff08;V,W&#xff09;表示边&#x…

必应搜索网站甘肃省建设厅查行网站

服务器配置如下&#xff1a; CPU/NPU&#xff1a;鲲鹏 CPU&#xff08;ARM64&#xff09;A300I pro推理卡 系统&#xff1a;Kylin V10 SP1【下载链接】【安装链接】 驱动与固件版本版本&#xff1a; Ascend-hdk-310p-npu-driver_23.0.1_linux-aarch64.run【下载链接】 Ascend-…

怎么做送餐网站wordpress文章密码查看

文章目录 前言一、BRDF中的镜面反射项二、分别解析每一个参数1、D、G函数&#xff1a;speclarTerm2、其他中间步骤3、光照颜色4、F函数&#xff08;菲涅尔函数&#xff09; &#xff1a;FresnelTermIBL在下篇文章中继续解析 三、最终代码.cginc文件:Shader文件&#xff1a; 前言…

网站建设报价比较最好网站建设公司

下载安装 官网 https://www.sublimetext.com 点击跳转 2023.7.21 版本为4143 Windows激活方式 一、激活License方式 入口在菜单栏中"Help” -> “Enter License” 注意格式&#xff0c;可能会过期失效&#xff0c;失效就用方式二 Mifeng User Single User License E…

网站软文写作要求百度云服务器搭建网站步骤

1、知识星球下载&#xff1a; 如需下载完整PPTX可编辑源文件&#xff0c;请前往星球获取&#xff1a;https://t.zsxq.com/19QeHVt8y 2、免费领取步骤&#xff1a; 【1】关注公众号 方案驿站 【2】私信发送 【智慧路灯大数据平台】 【3】获取本方案PDF下载链接&#xff0c;直…

定制网站设计方案外包公司上门催债是合法的吗

遥感卫星综述&#xff08;下载和预处理&#xff09; 目录 遥感卫星综述&#xff08;下载和预处理&#xff09;一、国产卫星GF-1 WFV 二、国外卫星Sentinel-1Sentinel-2 一、国产卫星 GF-1 WFV 下载 分辨率波段16m4(蓝、绿、红、近红) 预处理&#xff1a; ENVI预处理GF-1号W…

网站安全检测今天刚刚发生的新闻最新新闻

文章目录 第1章 搭建开发环境1.1开发套件硬件接口资源介绍1.2资料下载1.3安装Keil MDK1.3.1**软件下载**1.3.2**软件安装**1.3.3 PACK 安装 1.4 安装 STM32CubeMX1.5 安装 STM32CubeProgrammer1.6 安装 ST-Link 驱动1.7 安装 CH340 驱动 第1章 搭建开发环境 1.1开发套件硬件接…

网站可信认证对企业有哪些优势网站建设服务器价格

MySQL初始用 目录 MySQL初始用基本语法约定选择数据库查看数据库和表其它的SHOW 在Navicat中&#xff0c;大部分数据库管理相关的操作都可以通过图形界面完成&#xff0c;这个很简单&#xff0c;大家可以自行探索。虽然Navicat等图形化数据库管理工具为操作和管理数据库提供了非…

php网站开发就业杭州app定制公司

WeihanLi.Npoi 1.18.0 ReleasedIntro前段时间一直在想&#xff0c;把现在的配置做成类似于 AutoMapper 和 FluentValidation 那样&#xff0c;把每个类型的 mapping 配置放在一个类中&#xff0c;这样我们就可以比较好地组织我们的 mapping 关系&#xff0c;也可以配置多个 map…

企业做网站建设网站seo推广软件

目录 字符编码 字符编码说明参考网站 字符编码 ASCII编码 ASCII编码介绍 ASCII编码表 中文编码 1. GB2312标准 区位码 2. GBK编码 3. GB18030 各个标准的对比说明 4. Big5编码 字符编码 字符编码说明参考网站 字符编码及转换测试&#xff1a;导航菜单 - 千千秀字 …

学网站建设多少学费初学网站建设

目 录 前言 1硬件资源 1.1CPU 1.2ROM 1.3RAM 1.4时钟系统 1.5电源 1.6LED

网站如何做吸引人的项目灯箱网站开发

目录 描述 思路 查看ipa包崩溃日志 简单查看手机崩溃信息几种方式 方式1:手机设置查看崩溃日志 方式2: Xocde工具 方式3: 第三方软件克魔助手 环境配置 实时日志 奔溃日志分析 方式四&#xff1a;控制台资源库 线上崩溃日志 线上监听crash的几种方式 方式1: 三方平…

东莞做门户网站注册域名的注意事项

这win下默认的主题令人窒息 打开git bash&#xff0c;使用命令cd ~然后用Atom命令打开文件.minttyrc.atom .minttyrc如果默认没有.minttyrc文件&#xff0c;自己新创建的也行。里面的内容填写如下&#xff1a;FontConsolas FontHeight14ForegroundColour131,148,150 Background…

网站域名设计方案短视频分享网站开发

映射配置 在创建索引时&#xff0c;可以预先定义字段的类型&#xff08;映射类型&#xff09;及相关属性。 数据库建表的时候&#xff0c;我们DDL依据一般都会指定每个字段的存储类型&#xff0c;例如&#xff1a;varchar、int、datetime等&#xff0c;目的很明确&#xff0c;就…

装饰公司 网站模板网站ui设计是什么

vs2010做mvc3 开发,用的是Razor的View,想修改默认浏览器,发现右键没有"浏览方式",把View改成.aspx的,也没有找到这个选项. 解决方法两种 (1)最简单的,建个Asp.net Web应用程序,在随便一个xxx.aspx页面,右键"浏览方式"即可.. (2)通过修改项目属性也可以,右键…