实时接口

您所在的位置:网站首页 数据api接口是什么意思 实时接口

实时接口

2023-12-22 17:38| 来源: 网络整理| 查看: 265

前言

因最近在开发webservice接口,所以结合公司发的文档,以及自己网上查的资料整理了一份实时接口介绍,并结合网上的开发教程,自己写了简单的socket和webService的项目,其他的实时接口只做了简单了解。项目已导出上传百度云。

百度云链接: https://pan.baidu.com/s/1ADwSqGt_rNd77m499GOo3A 提取码: yvdv

CSDN资源:https://download.csdn.net/download/weixin_41827438/10947496 (CSDN不让设置免费,见谅)

实时接口-基础知识

客户端程序和服务端程序

接口的交互由客户端程序和服务端程序组成。网络通信时,服务端程序在服务端的一个端口上进行监听(等待请求),当客户端发出连接请求时,服务端进行响应,从而建立一条数据通信通道。

 

两台计算机进行通讯需要三个条件:IP地址、端口号、协议

IP地址:在网络中有多台计算机时使用IP地址作为标识,每一台计算机具有一个唯一的标识。 例如:192.168.0.1、127.0.0.1(本机IP)

 

端口:网络中可以被命名和寻址的通信端口,是操作系统的一种可分配资源(可分配给需要通信的程序,程序通过IP地址和端口号可以被唯一标识),每个端口都拥有一个被称为端口号(port nmber)的整数型标识符,端口号的存在使程序发起的请求可以被正确的程序接收。端口号范围为0--65535(256*256-1),其中0-1023位为系统保留。

 

协议:TCP协议是面向连接的协议,使用TCP协议通信时计算机之间建立虚拟连接,它提供了计算机之间的无差错数据传输。UDP协议是无连接通信协议,在使用UDP协议通信时,发送方不考虑接收方是否准备好,接收方收到数据后也不进行确认。所以UDP是不可靠的数据传输协议。

 

常见的接口

常见的几种接口方式:socket接口,webservice接口(如:soap、rmi、rpc协议),http协议接口(get,post)、MQ接口等

 

Socket接口:网络上具有唯一标识的IP地址和端口组合在一起才能构成唯一能识别的套接字。(一个ip和端口对应一个服务)

 

Webservice接口:web service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

 

http协议的接口: HTTp协议是Hyper text transfer Protool(超文本传输协议)的缩写,是用于从万维网(www:word wide web) 服务器传输超文本到本地浏览器的传送协议。

 

MQ接口:消息队列(MQ)是一种应用程序对应用程序的通信方法。

 

实时接口-常见接口:socket

 

Socket一些概念

短连接

连接-传输数据-关闭连接

短连接是指socket连接,发送数据,接受数据后,马上断开连接

长连接

连接-传输数据-保持连接-传输数据-。。。-关闭连接

建立socket连接后,不管是否使用,一致保持连接

半包

接受方没有接受到一个完整的包,直接受了部分

原因:TCP为了提高传输速率,将一个包分配的足够大,导致接收方并不能一次接受完。

影响:长连接和短连接中都出现

粘包

发送方发送的多个包数据到接收方接受时粘成一个包,从接受缓冲区看,后一包数据的头紧接着前一包数据的尾

分包

在出现粘包的时候,我们的接收方需要进行分包处理

常见分包方式:

固定长度:每次发送固定长度的数据;

特殊标识:以回车或换行作为特殊标识;获取到指定的标识时,说明包获取完整

自己长度:包头+包长+包体的协议形成,当服务器端获取到指定的包长时才说明获取完整(注意字符集)

 

 

Socket编程步骤:

在服务器端创建一个指定端口号的serverSocket对象运行serversocket对象的socket()方法,在指定端口等待客户端请求,建立连接。在客户端创建一个指定计算机地址和服务端具有相同端口号的socket对象,由socket对象向服务端发出连接请求。服务端的serversocket对象接到请求信息后,创建一个socket对象与客户端进行连接。连接建立后,服务端和客户端可分别建立输入输出流进行数据传输。通信结束后,关闭两端的socket连接。服务端调用serversocket对象的close()方法停止等待客户端请求。

Socket编程参考博客:https://www.cnblogs.com/lichenwei/p/4069432.html

我这边参考李晨玮博客写的一个简单的socket程序,具体代码见百度云

实时接口-常见接口:WebService

Web 是使应用程序可以与平台和编程语言无关的方式进行相互通信的一项技术。Web 服务是一个软件接口,它描述了一组可以在网络上通过标准化的 XML 消息传递访问的操作。 它使用基于 XML 语言的协议来描述要执行的操作或者要与另一个 Web 服务交换的数据。一组 以这种方式交互的 Web 服务在面向服务的体系结构(Service-Oriented Architecture,SOA) 中定义了特殊的 Web 服务应用程序。

简单的说WebService是一个SOA(面向服务的编程)的架构,它是不依赖于语言,不依 赖于平台,可以实现不同的语言(通过 xml 描述)间的相互调用,通过Internet进行基于 Http协议的网络应用间的交互。通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明, 通过XML进行传输数据,并通过UDDI进行注册。

 

 XML:(Extensible Markup Language)扩展型可标记语言。面向短期的临时数据处理、 面向万维网络,是Soap的基础。

 

Soap:(Simple Object Access Protocol) 简单对象存取协议。是XML Web Service 的 通信协议。当用户通过UDDI找到你的WSDL描述文档后,他通过可以SOAP调用你建立的Web服务 中的一个或多个操作。SOAP是XML文档形式的调用方法的规范,它可以支持不同的底层接口, 像HTTP(S)或者SMTP。

 

WSDL:(Web Services Description Language) WSDL 文件是一个 XML 文档,用于说 明一组 SOAP 消息以及如何交换这些消息。大多数情况下由软件自动生成和使用。

 

UDDI (Universal Description, Discovery, and Integration) :UDDI是一种用于描述、发现、集成Web Service的技术,它是Web Service协议栈的一个重要部分。通过UDDI,企业可以根据自己的需要动态查找并使用Web服务,也可以将自己的Web服务动态地发布到UDDI注册中心,供其他用户使用。

 

WebService编程参考:https://blog.csdn.net/gtlishujie/article/details/73527711

这篇博客主要是一个webService接口的简单实例,具体代码见百度云,这里不多阐述。

WebService编程参考:https://blog.csdn.net/qq_24505127/article/details/53057099

这篇博客主要是一个webService接口客户端如何利用HTTPclient传输xml报文,并用dom4j对其进行解析,具体代码见百度云。

 

Tip:soapUI软件可以更好的进行webservice接口测试。

 

实时接口-常见接口:http协议的接口

Http协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据的时候,会发 出一次Http请求。Http会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据 完毕后,Http会立即将TCP连接断开,这个过程是很短的。所以Http连接是一种短连接,是 一种无状态的连接。

HTTP协议的主要特点可概括如下:

1.支持客户/服务器模式。

2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET 、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得 HTTP服务器的程序规模小,因而通信速度很快。

3.灵活:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。

4.无连接:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并 收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。

5.无状态:HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状 态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数 据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。

实时接口-常见接口:MQ接口

写信人的信要用信封装起来,放入信箱邮递员收到北京的邮局,通过各种交通手段 (飞机火车)交给上海的邮局,上海的邮递员递送到邮箱上海的收件人得到信

用户数据:信的内容 消息头:邮编、地址、收件人等 MQ中:消息头+用户数据=消息 Message 队列Queue:邮箱 队列管理器QM:邮局管理机构 两地之间的QM之间的通信链路称 为Channel 网络断时由QM管理,通过重试等 手段 邮局不可以察看信件内容,QM也 不可以看信息内容,数据的拆包、 XML解析、SOAP组包都是由应用完成的。

接口间的区别 HTTP(URL)与SOCKET(tcp/udp)

利用socket进行通信时,在服务器端运行一个socket通信程序。服务器端不停地监听某个端口,等待 客户的连接申请,接到申请后建立连接并进行通信,所以,在socket通信方式中,服务器是主动等待 连接通信的到来。

利用URL进行通信时,在服务器端常驻一个CGI程序,但它一直处于休眠状态。只有在客户端要求建立 连接时才被激活,然后与用户进行通信。所以,在URL 通信方式中,服务器是被动等待连接通信的到 来。

 由于URL通信和socket通信的方式不同,所以,它们有各自的特点。

 利用socket进行通信时,服务器端的程序可以打开多个线程与多个客户进行通信,还可以通过服务器 使各个客户之间进行通信。这种方式比较灵活,适用于一些较复杂的通信,但是服务器端的程序必须 始终处于运行状态以监听端口。

 利用 URL进行通信时,服务器端的程序只能与一个客户进行通信,形式比较单一。但是它不需要服务 器端的CGI程序一直处于运行状态,只是在有客户申请时才被激活。所以,这种方式比较适用于客户 机的浏览器与服务器之间的通信。

HTTP:多数用于熟悉的系统 比如公司内部系统:对公系统与零售系统的交互。统一登录平台的跳转 。

WebService和Socket的对比

如果要传输大数据量,socket可以满足,如果存在大并发使用socket也可以实现,程序用socket 灵活性更大,比如可以socket的高并发框架mina开发。如果传输大数据量,webservice不适用。如果 webservice开发大并发的应用,webservice依靠web容器提高并发数。

webservice受jdk限制,要求JDK1.6以上,最好客户端向服务端看齐。

MQ与其他对比

MQ通过队列进行传递数据,注意队列的情况,防止队列溢出。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3