斯潘8
斯潘4
有关作为WebSocket服务器的FME服务器的信息,查看WebSocket文档.
每次在postgis中的表中更改一个特征(行)时,node.js接收有关该功能的信息。在javascript文件中,当node.js从postgis接收到一个特性时,它使用WS模块将特性流式传输到FME服务器。
const websocket=require('ws');var pg=require('pg');var request=require('request');var pgconstring=“postgres://username:password@server:port/database”;const ws=new websocket('ws://fmeserver:7078/websocket/',headers:“ws_op”:“打开”,“ws-stream-id”:“postgres”)console.log(“预打开就绪状态”+ws.ready state);ws.on(“打开”,function()ws.send('“ws_op”:“打开”,“ws-stream-id”:“Postgres”,“ws_msg”:“open”'););pg.connect(pgconstring,功能(错误,客户端)if(err)console.log(err);}else console.log('hello');client.on(“通知”,函数(msg)console.log(“msg is”msg.有效载荷);//db_body=json.parse(msg.payload);msgtype=typeof msg.payload;sendmsg2=“”ws_op“:”发送“,“ws-stream-id”:“Postgres”,“ws_msg”:'+msg.payload+'');ws.send(发送MSG2);});var query=client.query(“listen watchers2”););
如果正在编辑大量数据,这将非常有用。而不是每次都向主题发送通知并为每个功能触发工作区,WebSockets允许使用一个工作区来处理出现的功能。
WebSockets可以设置为FME服务器中的发布,并且每个消息都发布到一个主题中。
也可以使用WebSocketReceiver转换器接收WebSocket。必须指定相同的参数:WebSocket服务器URL和流ID。
完整的工作区在这里可用:websocket-receiver-complete.fmw
有关需求的更多信息,请参见教程的起始页。
修改postgis2ws.js文件以匹配数据库和FME服务器连接要求。
在命令提示窗口中,导航到节点可执行文件所在的文件夹。在命令窗口中,键入:node
如果什么都没有发生,很好。代码中的任何错误都将在此处报告。
在FME工作台中添加一个创建者,一个WebSocketReceiver和一个记录器。需要设置WebSocketReceiver连接前导码以连接到postgis2ws.js文件中的流,在这个例子中,websocket流是“postgres”。
“ws_op”:“打开”,“ws-stream-id”:[“postgres”]
工作区完成后,跑吧。只有一个功能可以从创建者移动到WebSocketReceiver。
您可能会在转换日志中注意到WebSocketReceiver正在等待传入的WebSocket消息。此工作区将继续运行,直到取消为止,并将一直等待消息。
WebSocketReceiver:正在尝试连接到端口“7078”上的主机“localhost”。WebSocketReceiver:已成功连接到端口“7078”上的主机“localhost”。WebSocketReceiver:与远程主机执行握手WebSocketReceiver:握手成功WebSocketReceiver:传输的连接前言WebSocketReceiver:等待传入的WebSocket MES圣人…
现在是时候去编辑了,从Postgis表中创建或删除一些功能。这可以使用FME(在单独的工作空间)或使用GIS。
此工作区可以发布到FME服务器,并作为计划运行或设置。工作区将在作业运行的整个过程中使用一个引擎。这可能比跑很多快的要便宜,如果有很多功能作为主题信息出现,则会不断减少工作,为每个功能创建一个作业。
当运行作业或调度时,FME服务器现在具有高级属性:
这将允许作业继续,直到取消或取消,直到设置的到期时间。这将允许WebSocketReceiver工作区在工作时间或数据库表上存在活动时运行。
因为输出属性是json,JSonFlatener将有助于将每个键转换为一个属性。然后,可以使用attributeManager创建一条消息,用于通知某人功能的更改。
创建功能时,在postgis中删除或更改的特性应该开始通过工作区进行流式处理。由于日志转换器的存在,发送的消息将显示在翻译日志窗口中。
可以轻松扩展此工作区,以开始对新功能执行验证过程或通知相关方。
?2019安全亚搏在线软件公司|合法的