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

php手机网站制作搜索引擎是指什么

php手机网站制作,搜索引擎是指什么,长春网站公司,手机网站建设服务商目录 前言 一、CoapClient相关类介绍 1、CoapClient类图 2、CoapClient的设计与实现 3、SendMessage解析 二、Client调用分析 1、创建CoapClient对象 2、实际发送请求 3、Server端请求响应 4、控制器寻址 总结 前言 在之前的博客内容中,关于在ASP.Net Co…

目录

前言

一、CoapClient相关类介绍

1、CoapClient类图

2、CoapClient的设计与实现

3、SendMessage解析

二、Client调用分析

1、创建CoapClient对象

2、实际发送请求

3、Server端请求响应

4、控制器寻址

总结 


前言

        在之前的博客内容中,关于在ASP.Net Core当中使用Coap协议进行开发进行一篇博文的探讨物联网协议Coap之C#基于Mozi的CoapServer实现解析。这边博文主要是讲解了在ASP .Net Core当中如何使用C#编程语言进行CoapServer的实现,对其涉及的相关类进行了简单的讲解,相信大家对其实现和协议实现由了一定的认识。但是基于C#的Client的设计与实现,以及详细的调用方式并没有进行讲解。

        本文是上篇博客的继续介绍篇,依然使用ASP .NET Core,采用C#编程语言进行开发,重点介绍CoapClient的C#代码实现以及使用Get方法实际发送请求,详细阐述与CoapServer端的交互调用。便于各位读者在使用过程中对Coap的调用机制有更深的了解和掌握。

一、CoapClient相关类介绍

        在Coap中,无论是使用Java进行开发,还是C#,或者使用PHP,必须要使用Client对象进行请求的发送,即Get、Post、Put、Delete四种请求。因此在C#中有必要对CoapClient进行一下简单介绍,同时可以对比一些在不同的编程语言中,实现上的有所区别。

1、CoapClient类图

        第一步来看一下CoapClient的类图,详细如下图所示:

         相信看过CoapServer的设计的朋友们一定记得,CoapServer的父类是什么?不记得的不要紧,下面将贴出重点代码:

 public class CoAPServer : CoAPPeer

        是的,各位没有看错,CoapServer也是CoAPPeer的子类,其实不管是客户端还是服务端,都是需要进行通讯的,二CoAPPeer就承接了这部分工作的。

        CoAPPeer是对等的,双方都需要实现协议中共同的部分。

2、CoapClient的设计与实现

        言归正传,这里还是要把CoapClient类的设计好好介绍一下,毕竟Client负责了所有终端与服务端的交互。也非常有必要介绍一下这位主角。

 public class CoAPClient : CoAPPeer{private bool _randomPort = true;private CoAPTransmissionConfig _transConfig = new CoAPTransmissionConfig();private MessageCacheManager _cacheManager;private ulong _packetReceived;//private ushort _remotePort = CoAPProtocol.Port;//private string _remotehost = "";/ <summary>/ 远端服务器地址/ </summary>//public string RemoteAddress { get { return _remotehost; } protected set { _remotehost = value; } }/ <summary>/ 远端服务器端口/ </summary>//public ushort RemotePort { get { return _remotePort; } protected set { _remotePort = value; } }/// <summary>/// 服务端回应请求/// </summary>public MessageTransmit Response;/// <summary>/// 发起请求/// </summary>public MessageTransmit Request;private byte[] _token;/// <summary>/// 统一通信Token/// </summary>public byte[] Token { get => _token; set => _token = value; }

        通过代码可以看到,在CoapClient中,定义了请求和响应对象,以及token对象。 在这个类当中,不仅定义了Client的相关属性,同时还定义了丰富的方法,基本上是围绕Get、Post、Put、Delete等四个方法当中。下面来详细介绍一下:

        以Get为例,这里就定义三个重载方法,对于实际使用过程当中几乎可以覆盖相关场景,如果您还觉得不够,可以自行扩展以更好的贴近自己的实际需求。

序号方法参数说明
1Get(string url) Get方法,默认消息类型为<see cref="CoAPMessageType.Confirmable"/>
2Get(string url, CoAPMessageType msgType)

url,地址中的要素会被分解注入到Options中

msgType消息类型

3Get(string url, CoAPMessageType msgType, IList<CoAPOption> options)

url,地址中的要素会被分解注入到Options中

msgType消息类型

options 选项集合

        当然,不论是Get还是Post方法,其底层其实都用调用SendMessage()方法,因此SendMessage才是核心的方法。

3、SendMessage解析

以下是核心的发送消息的方法,代码如下:

/// <summary>/// </summary>/// <param name="url">地址中的要素会被分解注入到Options中,参见<see cref="Get(string, CoAPMessageType, IList{CoAPOption})"/></param>/// <param name="msgType">消息类型,默认为<see cref="CoAPMessageType.Confirmable"/></param>/// <param name="msgId"></param>/// <param name="token"></param>/// <param name="method"></param>/// <param name="options"></param>/// <param name="payload"></param>/// <returns></returns>public ushort SendMessage(string url, CoAPMessageType msgType, ushort msgId, byte[] token, CoAPRequestMethod method, IList<CoAPOption> options, byte[] payload){CoAPPackage cp = new CoAPPackage{Code = method,Token = token,MesssageId = msgId,MessageType = msgType ?? CoAPMessageType.Confirmable};UriInfo uri = UriInfo.Parse(url);if (!string.IsNullOrEmpty(uri.Url)){if (cp.Code == CoAPRequestMethod.Post || cp.Code == CoAPRequestMethod.Put){cp.Payload = payload;}//注入URI信息cp.SetUri(uri);//发起通讯if (!string.IsNullOrEmpty(uri.Host)){if (options != null){foreach (var opt in options){cp.SetOption(opt.Option, opt.Value);}}SendMessage(uri.Host, uri.Port == 0 ? CoAPProtocol.Port : uri.Port, cp);}else{throw new Exception($"DNS无法解析指定的域名:{uri.Domain}");}}else{throw new Exception($"分析链接地址:{url}时出错,请检查URL地址是否合法");}return cp.MesssageId;}
序号参数名说明
1url请求地址
2msgType消息类型
3msgId消息id
4token通信令牌
5method请求方法,如get、post、put、delete等
6options选项集合
7payload请求载荷,简单理解就是请求参数包

二、Client调用分析

        CoapClient的请求调用,在C#中的实现与Java是类似的,也是要创建CoapClient对象,然后向Server端发送请求,下面会针对这个调用流程进行介绍。

1、创建CoapClient对象

        创建client对象的关键代码如下:

CoAPClient cc = new CoAPClient();
//本地端口
cc.SetPort(12340);cc.Response += new MessageTransmit((x, y, z) => {Console.ForegroundColor = ConsoleColor.DarkGreen;Console.WriteLine(z.ToString(CoAPPackageToStringType.HttpStyle));Console.ForegroundColor = ConsoleColor.Gray;
});
cc.Request += new MessageTransmit((x, y, z) =>
{Console.WriteLine(z.ToString(CoAPPackageToStringType.HttpStyle));
});cc.Start();

         这里与CoapServer的启动流程是一样的,同样会创建Udp的Socket,然后绑定endPoint。这样即完成了CoapClient对象的创建及启动准备。

2、实际发送请求

        在创建了Client对象和启动后,即可进行相应方法的调用。下面以get方法为例,调用一个之前我们用C#写好的一个Resource,访问代码如下:

cc.Get("coap://127.0.0.1:5683/core/time?type=1",CoAPMessageType.Confirmable);

         然后调用下面的消息发送方法进行消息的发送。

 调用Socket对象进行消息的发送。

3、Server端请求响应

        以上步骤一个请求就已经发往了Server,下面来看一下Server端的Resoure寻址过程。首先在CoapServer当中,有一个Socket_AfterReceiveEnd的方法,用来接收请求,如下过程进行请求包的一个解析和转换。

         这里很关键,这里就是把之前通过ResourceManager管理器统一管理的控制器进行获取,类似与Java当中反射和IOC的概念。这里千万要理解。

4、控制器寻址

        在上面的过程当中会调用Invoke方法进行反射调用方法,下面来具体看一下控制器寻址怎么实现的。首先在Invoke的之后,实际会调用下面的管理器核心方法。

        这个方法是定义在ResourceManager这个类当中的。然后根据请求路径去IOC容器中寻找匹配的资源对象。

 随后完成实际方法的调用,一气呵成。这种调用方法与java的反射有异曲同工之处。

总结 

        以上就是本文的主要内容, 本文是上篇博客的继续介绍篇,依然使用ASP .NET Core,采用C#编程语言进行开发,重点介绍CoapClient的C#代码实现以及使用Get方法实际发送请求,详细阐述与CoapServer端的交互调用。便于各位读者在使用过程中对Coap的调用机制有更深的了解和掌握。行文仓促,难免有疏漏和不当之处,如果不足,欢迎各位朋友在评论区之处。

http://www.yidumall.com/news/55980.html

相关文章:

  • 一个只做百合的网站镇江搜索优化技巧
  • 企业网站做推广广告软文怎么写
  • 网站建设套餐介绍上海快速优化排名
  • 做网站设计要注意什么问题对网站提出的优化建议
  • 做中介最好用的网站搜索排名优化公司
  • 桥梁毕业设计代做网站谷歌外贸平台叫什么
  • wordpress图片付费主题seo超级外链发布
  • java开发工具有哪些优化公司怎么优化网站的
  • 如何做好网站建设内容的策划书怎样注册网站
  • 怎么制作做网站优化网站制作方法大全
  • asp网站做文件共享上传什么是市场营销
  • 那个网站做教学视频营销宣传方案
  • 深圳中高端网站建设怎么样做电商一个月能挣多少钱
  • 网站制作的电话软文内容
  • 网站怎么做cdn太原关键词排名优化
  • 网络营销推广公司网站有哪些建立网站的软件
  • 政务信息网站的建设的意义站长素材音效下载
  • 高端模板网站建设价格seo在线优化平台
  • seo优化实训报告seo对各类网站的作用
  • 东营有做网站的公司如何在百度打广告
  • 湘潭seo公司选择24火星南昌seo搜索优化
  • 一站式做网站多少钱营销案例分析报告模板
  • 保密管理咨询公司电子商务seo
  • 网站建设发票怎么开产品推广营销方案
  • 第四章第二节网站建设的教学设计创建网页
  • 网站ip地址查询建网站需要什么
  • 网页拒绝访问怎么解决上海百度推广优化排名
  • 咸阳哪里做网站天津seo培训机构
  • 如何在电子表格上做网站的连接梧州网站seo
  • 网站开发器河南网站推广优化