一个SyncML协议的例子

下面是一个例子,描述同步传输的大体过程。同步传输有七种方式,下面的例子是双向传输,最复杂的一种。首先进行初始的准备工作,然后进行传输,再进行确认。

1. 客户端发出同步请求

相当于同步的头文件,基本为固定模式

1.0
SyncML/1.0
1
1
同步初始化时数值为一,相当于第几个回合
目标地址
http://www.syncml.org/sync-server
源地址
IMEI:493005/10/059280/0
认证

认证模式
syncml:auth-basic
相当于密码
dXNlcmlkOnBhc3N3b3Jk=


5000


头文件结束

唤醒对方,相当于发出信号

1
命令ID为1
200
共有七种连接方式,200代表其中一种

./contacts/james_bond
进行操作的目标和地址,相当于数据库
./dev-contacts

相当于认证

234
276




上传

2
application/xml
固定的格式

devinf10
固定的格式


相当于本地的数据描述
Big Factory, Ltd.
4119
Jane's phones
2.0e
2.0
1.22I
1218182THD000001-2
phone

./contacts
Phonebook
32GUID
相当于索引

text/x-vcard
2.1


text/x-vcard
2.1

数据存储能力

32650
250
22430
122



text/x-vcard
BEGIN
VCARD
END
VCARD
VERSION
2.1
N
TEL
VOICE
CELL


01
02






3
application/xml

devinf10





2. 服务器端发出同步请求

头文件

1.0
SyncML/1.0
1
1
IMEI:493005/10/059280/0
http://www.syncml.org/sync-server

syncml:auth-basic
dXNlcmlkOnBhc3N3b3Jk=




相当于回复客户端请求
回复头文件

10SyncHdr
http://www.syncml.org/sync-server
IMEI:493005/10/059280/0
212代表正常
212

回复Alert

11Alert
./contacts/james_bond
./dev-contacts
200
200代表正常
把认证对上,对方请求的值

276



回复Put
12Put
devinf10
200

返回值,请求对方

13
application/xml
固定格式

devinf10
固定格式

相当于数据描述

Small Factory, Ltd.
Tiny Server
Tiny Shop
485749KR
Server

./contacts
Addressbook

text/x-vcard
2.1


text/vcard
3.0


text/x-vcard
2.1


text/vcard
3.0

存储能力

132650
1250
122430
1122



text/x-vcard
BEGIN
VCARD
END
VCARD
VERSION
2.1
N
TEL
VOICE
CELL
text/vcard
BEGIN
VCARD
END
VCARD
VERSION
3.0
N
TEL
VOICE
FAX
CELL
text/vcard
BEGIN
VCARD
END
VCARD
VERSION
3.0
N
TEL
VOICE
FAX
CELL


01
02
07





进行双向传输,唤醒对方

1
201

./dev-contacts
./contacts/james_bond

发送认证

200005021T081812Z
200005022T093223Z







3. 客户端提交数据


1.0
SyncML/1.0
1
2
http://www.syncml.org/sync-server
IMEI:493005/10/059280/0


回复服务器的请求

10SyncHdr
IMEI:493005/10/059280/0
http://www.syncml.org/sync-server
212

回复服务器的请求

11Alert
./dev-contacts
./contacts/james_bond
200


Anchor回复对方请求的
200005022T093223Z




1
./contacts/james_bond
./dev-contacts

存储能力

8100

81




2
text/x-vcard

1012
数据项地址







4. 服务器端提交数据


1.0
SyncML/1.0
1
2
IMEI:493005/10/059280/0
http://www.syncml.org/sync-server


回复客户请求

20SyncHdr
http://www.syncml.org/sync-server
IMEI:493005/10/059280/0
200

回复Sync请求

21Sync
./contacts/james_bond
./dev-contacts
200

回复Replace

22Replace
1012
200

发出同步请求

1
./dev-contacts
./contacts/james_bond

2
text/x-vcard

1023




3
text/x-vcard

10536681







5. 客户端显示数据更改情况


1.0
SyncML/1.0
1
3
http://www.syncml.org/sync-server
IMEI:493005/10/059280/0


回复同步请求

20SyncHdr
IMEI:493005/10/059280/0
http://www.syncml.org/sync-server
200


21Sync
./dev-contacts
./contacts/james_bond
200


22Replace
1023
200


23Add
10536681
200

服务器和客户端的数据保持同步
1
./contacts/james_bond
./dev-contacts

10536681和1024指的是同一个数据
10536681
1024





6. 服务器端确认更改


1.0
SyncML/1.0
1
3
IMEI:493005/10/059280/0
http://www.syncml.org/sync-server



30SyncHdr
http://www.syncml.org/sync-server
IMEI:493005/10/059280/0
200

证实数据已经做了更改

31Map
./contacts/james_bond
./dev-contacts
200



 

你可能感兴趣的:(一个SyncML协议的例子)