<dataflow_uri>/subscribe[.<format>]
ws://{ip}:{port}/iserver/services/{ServiceName}/dataflow/subscribe
subcribe 资源表示数据流服务的订阅入口,为客户端提供了连接到数据流服务的能力,客户端订阅订阅数据流服务后可自动接收服务器广播的数据。
客户端通过 Websocket 协议与服务器进行数据传输,可在URI中指定过滤属性、动态投影等参数。
支持的方法:
支持的表述格式:RJSON、JSON、HTML、XML。
对如下 URI 执行 HTTP 请求,以 rjson 输出格式为例加以说明,其中,supermapiserver 是服务器名。
http://supermapiserver:8090/iserver/services/{ServiceName}/rest/dataflow/broadcast.rjson
获取数据流服务的订阅入口。
字段 | 类型 | 说明 |
subscribeUrl | String | 订阅服务的URL |
对 subscribe 资源:http://supermapiserver:8090/iserver/services/data/dataflow/subscribe.rjson 执行GET 请求,返回 rjson 格式的资源描述如下:
{"subscribeUrl": "ws://192.168.17.116:8091/iserver/services/data/dataflow/subscribe"}
返回跟 GET 请求一样的 HTTP 响应头,但是没有响应实体。可以在不必传输整个响应内容的情况下,获取包含在响应消息头中的元数据信息。元数据信息包括媒体类型,字符编码,压缩编码,实体内容长度等。
HEAD 请求可以用来判断 subscribe 资源是否存在,或者客户端是否有权限访问 subscribe 资源。通过对加.<format>的 URI 执行 HEAD 请求,还可以快速判断 subscribe 资源是否支持<format>格式的表述。
对如下 URI 执行 WS 请求,其中,supermapiserver 是服务器名。
ws://supermapiserver:8091/iserver/services/{ServiceName}/dataflow/subscribe
建立 WebSocket 连接,获取服务器广播数据,可以在 URI 中包含如下过滤参数:
字段 | 类型 | 说明 |
excludeField | String | 用于指定过滤参数。在请求URI中传入此参数,客户端接收到的信息将不包含过滤掉的字段。 |
geometry | String | 指定几何范围。 |
prjCoordSys | String | 通过此参数指定客户端接收到的坐标参考系。 |
token | String | 订阅数据流服务所需的token。可参考获取token。 |
可在URI中指定参数,以获取所需信息:ws://supermapiserver:8091/iserver/services/{ServiceName}/dataflow/subscribe?geometry={'bounds':{'bottom':14.0,'center':{'x':20.0,'y':20.0},'height':12.0,'left':14.0,'leftBottom':{'x':14.0,'y':14.0},'right':26.0,'rightTop':{'x':26.0,'y':26.0},'top':26.0,'valid':true,'width':12.0},'center':{'x':20.0,'y':20.0},'id':1,'partTopo':[1],'parts':[4],'points':[{'x':26.0,'y':26.0},{'x':26.0,'y':14.0},{'x':14.0,'y':14.0},{'x':14.0,'y':26.0}],'type':'REGION'}&excludeField=SMSDRIW,SMSDRIN,SMSDRIE,SMSDRIS,SMUSERID,SMAREA,SMPERIMETER,SMGEOMETRYSIZE,SMGEOPOSITION&prjCoordSys={epsg:3857}
也可在 WebSocket 中传入相关参数,通过 WebSocket 传入过滤参数,需包含在 filterParam 节点中:
{
filterParam:
{
"excludeField":["SMSDRIW","SMSDRIN","SMSDRIE","SMSDRIS","SMUSERID","SMAREA","SMPERIMETER","SMGEOMETRYSIZE","SMGEOPOSITION"],
"geometry":
{
"bounds":
{
"bottom":-6.0,
"center":{"x":0.0,"y":0.0},
"height":12.0,
"left":-6.0,
"leftBottom":
{
"x":-6.0,
"y":-6.0
},
"right":6.0,
"rightTop":
{
"x":6.0,
"y":6.0
},
"top":6.0,
"valid":true,
"width":12.0
},
"center":
{
"x":0.0,
"y":0.0
},
"id":1,
"partTopo":[1],
"parts":[4],
"points":[{"x":6.0,"y":6.0},{"x":6.0,"y":-6.0},{"x":-6.0,"y":-6.0},{"x":-6.0,"y":6.0}],"type":"REGION"
}
}
}