西班牙
斯潘4
有关fme服务器作为websocket服务器的信息,请参见WebSocket文档是的。
每次postgis中的表中更改一个特性(行)时,node.js都会接收有关该特性的信息。在javascript文件中,当node.js从postgis接收到特性时,它使用ws模块将特性流式传输到fme服务器。
const websocket=需要('ws');var pg=需要('pg');var request=require('request');var pgconstring=“postgres://username:password@server:port/database”;const ws=new websocket('ws://fmeserver:7078/websocket/',{headers:{“ws-op”:“open”,“ws-stream-id”:“postgres”});console.log(“预打开就绪状态”+ws.ready state);ws.on('open',function(){ws.send('{“ws-op”:“open”,“ws-stream-id”:“postgres”,“ws-msg”:“open”}');});pg.connect(pgconstring,函数(err,client){if(err){console.log(err);}其他{console.log('hello');client.on('通知',函数(msg){console.log(“msg is”+msg.payload);//db_body=json.parse(msg.payload);msgtype=typeof msg.payload;sendmsg2=('{“ws_op”:“send”,“ws_stream_id”:“postgres”,“ws_msg”:'+msg.payload+'}');发送(sendmsg2);});}var query=client.query(“监听监视程序2”);});
如果正在编辑大量数据,这将非常有用。尚不必每次向主题发送通知并为每个功能触发一个工作区,而是允许使用一个工作区来处理出现的功能。
websockets可以设置为fme服务器中的发布,并且每个消息都发布到一个主题。
websockets也可以使用websocketreceiver转换器接收。必须指定相同的参数:websocket服务器url和流id。
此处提供完整的工作区:websocket-receiver-complete.fmw
有关需求的更多信息,请参见教程的起始页。
修改postgis2ws.js文件以匹配数据库和fme服务器连接要求。
在命令提示窗口中,导航到节点可执行文件所在的文件夹。在命令窗口中键入:node
如果什么都没发生,那就好。这里将报告代码中的任何错误。
在fme workbench中添加一个creator、一个websocketreceiver和一个logger。需要设置WebSocketReceiver连接前导码以连接到postgis2ws.js文件中的流,在本例中,WebSocket流为“postgres”。
{“ws-op”:“打开”,“ws-u流id”:[“postgres”]}
工作空间完成后,运行它。只有一个功能会从创建者传递到WebSocketReceiver。
您可能在转换日志中注意到WebSocketReceiver正在等待传入的WebSocket消息。该工作区将继续运行,直到被取消,并将一直等待消息。
WebSocketReceiver:尝试连接到端口‘7078’上的主机‘localhost’WebSocketReceiver:成功连接到端口‘7078’上的主机‘localhost’WebSocketReceiver:执行与远程主机的握手WebSocketReceiver:握手成功
现在是时候从PostGIS表中编辑、创建或删除一些特性了。这可以使用FME(在单独的工作空间中)或使用GIS。
可以将此工作区发布到FME服务器并运行或设置为调度。工作空间将在作业运行的整个时间内使用一个引擎。如果有很多功能以主题消息的形式出现,为每个功能创建一个任务,那么这可能比持续运行大量快速、较小的任务更“昂贵”。
FME服务器现在有高级属性运行作业或调度:
这将允许作业持续到取消或取消到指定的到期时间。这将允许WebSocketReceiver工作区在工作时间或数据库表上有活动时运行。
由于_output属性是JSON, jsonflater将有助于将每个键转换为属性。然后可以使用AttributeManager创建一条消息,该消息可用于通知某人特性的更改。
在创建特性时,PostGIS特性中的删除或更改应该开始在工作区中流动。由于日志记录器转换器的原因,发送的消息将出现在翻译日志窗口中。
可以很容易地扩展此工作区,以开始对新特性执行验证过程或通知相关方。
?2019安全亚搏在线软件公司|合法的