首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

嵌入式系统数据同步协议 SyncML底层通讯

嵌入式系统数据同步协议 SyncML底层通讯

2 SyncML 底层通讯2.1 绑定Http
2.1.1 Tcp 传输服务
Http通信一般是在 Tcp连接之上的,这个绑定不是必需的,如果Http基于其它的协议,那么需求也和下面Tcp定义的相似
2.1.1.1 连接
在Http客户端连接到Http服务器端的时候,SyncML客户端建立一个Tcp连接在客户和服务器之间通过使用Tcp open操作,在超时的情况下还需要SyncML客户端从新建立连接。
2.1.1.2连接选项
关于端口和协议版本的一些选项。
2.1.1.3 断开连接
当连接不需要的时候,SyncML客户端负责使用tcp close操作结束连接。如果固定连接存在于Http请求中,Http连接的关闭有Http客户端来完成,当Http客户端接收到来自服务器的Http应答中指明这是最后一个SyncML的包。
2.1.1.4 终止
有时候非正常时间发生会要求应用程序中断Tcp连接,这种情况下,Tcp从新初始化来结束当前连接。
2.1.1.5 超时
当服务器超时,SyncML客户端需要重建一个新的HTTP会话并且Http服务器端会尝试从新发送当前的SyncML包
2.1.2. SyncML信息交换
一旦Http连接建立,一个或者多个SyncML消息会通过连接由SyncML客户端传输,它们存在于Http客户端的请求或者Http服务器端的应答中。
在Http请求中POST方法用来传递SyncML消息。
2.1.2.1 每包一个消息
下面是Http请求的部分代码:
1
2
3
4
5
POST ./servlet/syncit HTTP/1.1
Host: www.datasync.org
Content-Type: application/vnd.syncml-xml; charset="utf-8"
Content0Length: 1023
Accept: application/vnd.syncml-xml




下面是Http应答的部分代码:
1
2
3
4
HTTP/1.1 200 ok
Content-Type: application/vnd.syncml-wbxml; charset="utf-8"
Content-LengthL 1023
--HTTP body---




2.1.2.2 一个包里包含多个消息
每一个Sync消息必须使用SyncML MIME媒体类型在HTTP请求或应答中传递,当每个包里有多个SyncML消息的时候,每一个消息是否在分离的HTTP请求或应答传递依赖于它是否是SyncML的请求和应答。可以根据每一个SyncML消息是否有最后一个元素来判断这个包中是否有更多的SyncML消息,如够有最后一个元素,那么这消息就是该包中最后一个消息。
2.1.3 传输命令
HTTP使用一系列的命令,包括传输方法,头部信息,请求的头部信息,应答的头部信息
2.1.3.1 传输方法
SyncML客户端必须使用POST方法或者可以使用CONNECT方法(如果支持的话)来给SyncML服务器发送SyncML请求。CONNECT方法用来初始化SSL会话以验证HTTP客户和服务器,其他的方法目前没有用在SyncML客户端。
2.2 绑定Obex
2.3 绑定Wsp
返回列表