96SEO 2026-02-20 09:33 18
种信息交流的基本单元#xff0c;发现其他Peer及其他Peer及其资源的问题…JXTA核心协议之对等机发现协议PDP-peer

PDP主要用来发布自己的advertisement信息和查找其他Peer的advertisement。
Advertisement是Peer之间各
种信息交流的基本单元发现其他Peer及其他Peer及其资源的问题就转换为发现描述各资源的Advertisement
的问题只要找到对应的Advertisement就相当于找到了该资源。
PDP定义了发现其他Peer和资源的协议该协议包括两个方面一方面用于请求获得其他Peer的Advertisement
PDP只由两种格式构成他们是用于发现Advertisement的请求格式用于响应请求的响应格式。
这两种
消息定义了两个Peer之间互相发现对方所需的所有元素。
虽然discovery消息定义了请求和对应的响应
一个Peer想要寻找某种Advertisement时就会发出Discovery
Advertisement时将threshold也设为0发出这种请求意味着请求方想想
Advertisement。
这样收到请求的所有Peer都响应提供自己的Peer
如果Attr和Value的值没有设定其他Peer响应时回复的是Advertisement的随机集合当然前提是符合Type指
要求的Advertisement如Attr/Value要求或Advertisement类型的要求。
//包含integer值的可选元素代表Message中响应元素的总数目。
Message中搜索要求的Advertisement。
每个Discovery
Message可以包含多了Response元素没个元素只包含一个Advertisement。
而Response元素个数之和为Count的值。
Response元素中的Expiration属性指明Advertisement的有效时间长度当然这个时间以毫秒为单位。
Group称为NetPeerGroup因而所有的Peer及其Advertisement
DiscoveryService接口为开发人员提供了简单的方法来发送discovery请求和处理discovery响应。
使用其方法
Message甚至不需要开发人员创建和发布DiscoveryQuery对象。
发现discovery请求后接到响应时应用程序需要获得通知以便取得响应中的Advertisement。
在Java参考
Service注册一个listener对象当Discovery
每次DiscoveryService实例收到Discovery
Message都会调用该listener的discoveryEvent方
法并传递事件本身事件中包括了响应的细节。
但discoveryEvent的方法必须用到DiscoveryEvent类的参数
作为discoveryEvent方法的参数是为了提供DiscoveryService实例收到的Discovery
DiscoveryService接口提供了简便的方法来给其他Peer发送Discovery
DiscoveryQueryMsg实例而是用getRemoteAdvertisements方法。
它有五个参数第一个参数为Peerid如果
为空则会把请求发给本地的网络上的所有Peer并通过Rendezvous
Message的Advertisement会自动保存在本地的Advertisement缓存中DiscoveryListener实现中不需要再写缓存的函数。
并通过DiscoveryService接口的getLocalAdvertisements方法。
这与寻找远程的Peer不同用此方法可以马上得到结果不需要用DiscoveryListener实现来处理在DiscoveryResponseMsg响应中返回的Advertisement马上返回一个与请求参数相匹配的Advertisement的Enumeration。
有时应用程序可能想清除所有的缓存比如应用程序很久没有使用估计所有Advertisement都已失效。
使用Advertisement所有的Advertisement都是从net.jxta.document.Advertisement抽象类继承而来的。
Advertisement定义了几个方法最重要的是getDocument方法。
该方法将Advertisement转换为特定MIME类
AdvertisementFactory.newAdvertisement(“jxta:PA”);
PeerAdvertisement.getAdvertisementType()。
PeerGroupFactory.newNetPeerGroup();
netPeerGroup.getDiscoveryService();
discovery.addDiscoveryListener(this);
discovery.getRemoteAdvertisements(null,
DiscoveryListener我们必须定义这个方法来处理所反馈信息
用getLocalAdvertisements()方法来检索本地缓存中的Advertisements如果想发现其他的
Advertisements就必须用getRemoteAdvertisements()来发送一个Discovery
Messages能发送给一个Peer但也能发送到一个JXTA的网络上。
在J2SE的平台上Discovery
Messages还可以发给一个rendezvous。
如果这个Peer还没有连接到这个rendezvous上那么Discovery
Message将只有通过多次的尝试发送到本地的子网。
一旦这个Peer已经连接上了一个rendezvous那么Discovery
Message里包括它自己的广告完成一个公告或者是自动的发现机制。
Message你可以等候一个或多个Peer来响应DiscoveryResponse
Message并且调用方法getLocalAdvertisements()来检索已经被发现的任何结果并添加到本地的缓存中的广告。
添加一个
events被接收时调用discoveryEvent()方法。
这里有两个方法添加Discovery
Listener一个是直接的addDiscoveryListener()参考本程序Line33另一个是通过getRemoteAdvertisements()方法。
本例用的是第一种方法如果采用第二种方法可以将下程序的Line38~39写成
discovery.getRemoteAdvertisements(null,
DiscoveryService.PEER,null,null,5,this);
ResponseL你很有可能没有正确的配置好你的JXTA平台环境。
请删除.jxta目录下的PlatformConfig文件并重新运行程序。
本文讲述了JXTA平台如何处理发现其他Peer的有关事宜以及JXTA的Java参考实现中提供的如何给其他Peer发送Discovery请求消息并处理返回的响应。
还提到了利用Java参考实现中提供的Discovery接口及实现如何在本地或远程发布Advertisement。
当然上面所介绍的PDP只是JXTA核心协议的一部分还有的一些协议将在以后的文章中再介绍呵呵……:)
注在JXTA里Advertisement广告相当于人类社会中的名片在JXTA网络中的所有资源都通过广告来描述用XML语言来描述Advertisement。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback